Mon application dispose d'une vue défilante paginée avec une tableView dans chaque page. Au bas de l'écran, j'ai placé une bannière publicitaire, qui devrait masquer que les annonces deviennent indisponibles et réapparaissent quand ils sont chargés. Cette bannière est placée en dessous de la vue défilante et n'est pas affectée par le fait que l'utilisateur fasse défiler les pages de gauche à droite ou de haut en bas de la table.UIScrollView/UITableView se bloque lors du redimensionnement de l'image
Je redimensionnez que ScrollView en cas de besoin avec quelque chose comme ceci:
NSInteger offset = -50;
if (self.bannerIsVisible) offset = 50;
CGRect frame = scrollView.frame;
frame.size.height += offset;
scrollView.contentSize = CGSizeMake(frame.size.width * pages, frame.size.height);
scrollView.frame = frame;
Cette dernière ligne me cause des problèmes. Parfois, tout fonctionne très bien et redimensionne parfaitement le scrollView et tout son contenu. D'autres fois, il se bloque avec cela dans la console:
2010-07-27 10:25:31.779 MyAPP[8026:207] -[__NSArrayM tableView:cellForRowAtIndexPath:]: unrecognized selector sent to instance 0x736eb20
2010-07-27 10:25:31.781 MyAPP[8026:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayM tableView:cellForRowAtIndexPath:]: unrecognized selector sent to instance 0x736eb20'
*** Call stack at first throw:
(
0 CoreFoundation 0x026cb919 __exceptionPreprocess + 185
1 libobjc.A.dylib 0x028195de objc_exception_throw + 47
2 CoreFoundation 0x026cd42b -[NSObject(NSObject) doesNotRecognizeSelector:] + 187
3 CoreFoundation 0x0263d116 ___forwarding___ + 966
4 CoreFoundation 0x0263ccd2 _CF_forwarding_prep_0 + 50
5 UIKit 0x003a3a3f -[UITableView(UITableViewInternal) _createPreparedCellForGlobalRow:withIndexPath:] + 619
6 UIKit 0x00399ad2 -[UITableView(UITableViewInternal) _createPreparedCellForGlobalRow:] + 75
7 UIKit 0x003ae40c -[UITableView(_UITableViewPrivate) _updateVisibleCellsNow:] + 1561
8 UIKit 0x003a60d7 -[UITableView(_UITableViewPrivate) _setNeedsVisibleCellsUpdate:withFrames:] + 372
9 UIKit 0x003a37cd -[UITableView setFrame:] + 266
10 UIKit 0x00367ae8 -[UIView(Geometry) resizeWithOldSuperviewSize:] + 385
11 UIKit 0x0036ba2b -[UIView(Geometry) resizeSubviewsWithOldSize:] + 273
12 UIKit 0x00367f79 -[UIView(Geometry) setFrame:] + 497
13 UIKit 0x0038085f -[UIScrollView setFrame:] + 617
14 MyAPP 0x0000a678 -[MyViewController toggleBanner] + 893
Pourquoi cela se produit-il, et pourquoi seulement parfois? Plus précisément, comment puis-je modifier de manière fiable la taille de mon scrollView?
avez-vous essayé le débogage étape par étape à travers vos tables méthode cellForRowAtIndexPath? De mon point de vue, il semble qu'il y ait un appel invalide dans cette méthode. pas 100% sûr dur. – samsam