Çeşitli yerlerdeNeden self.frame ve self.contentView.frame genellikle UITableViewCell için farklıdır? dönmek için bir UITableViewCell oluştururken
NSAssert(abs(self.frame.size.height-self.contentView.frame.size.height)<=1,@"Should be the same");
serpilmiştir.
Sonuç genellikle farklılık gösterir. Bazen bazen 1 piksel, bazen 2
Problemin ne olduğunu merak ediyorum. CellForRowAtIndexPath içinde onları farklı kılan bir şey var mı?
Aynısından başlıyorlar. Hiçbir düzenleme vb
BGDetailTableViewCell * cell= (BGDetailTableViewCell*)[tableView dequeueReusableCellWithIdentifier:[BGDetailTableViewCell reuseIdentifier]];
if (cell==nil)
{
cell = [[BGDetailTableViewCell alloc]init];
}
else
{
NSAssert(abs(cell.frame.size.height-cell.contentView.frame.size.height)<=1,@"Should be the same"); //Sometimes this fail
}
NSOrderedSet *Reviews = [self.businessDetailed mutableOrderedSetValueForKey:footer.relationshipKey];
Review * theReview = [Reviews objectAtIndex:row];
cell.theReview = theReview;
NSAssert(abs(cell.frame.size.height-cell.contentView.frame.size.height)<=1,@"Should be the same");//This one never fail right before returning cell
return cell;
`NSAssert(abs(cell.frame.size.height-cell.contentView.frame.size.height)<=1,@"Should be the same")`; never fails right before returning the cell.
Ancak bu basit Snippet en
Bak yoktur, ben hücre bazen ikincisi sıradan çıkarma sonra başarısız olur.
Bu
tableView gruplanmış modundayken arada sonuç(lldb) po cell
$0 = 0x0c0f0ae0 <BGDetailTableViewCell: 0xc0f0ae0; baseClass = UITableViewCell; frame = (0 424; 320 91); hidden = YES; autoresize = W; userInteractionEnabled = NO; layer = <CALayer: 0xc01e800>>
(lldb) po cell.contentView
$1 = 0x0c086080 <UITableViewCellContentView: 0xc086080; frame = (10 1; 300 89); gestureRecognizers = <NSArray: 0xc0c7ee0>; layer = <CALayer: 0xc0ebbf0>>
olduğunu. Bunun onunla bir ilgisi olduğunu düşünüyorum.
Mark, hücre genişliğinin ve hücrenin içeriğinin genişliğinin neden aynı olmadığını açıklar mısınız? –