返すためのUITableViewCellを作成するときに、私は、様々な場所になぜself.frameとself.contentView.frameはUITableViewCellで異なるのですか?
NSAssert(abs(self.frame.size.height-self.contentView.frame.size.height)<=1,@"Should be the same");
を振りかけました。
多くの場合、結果が異なります。場合によっては1ピクセルで、時には2で表示されます。
問題は何ですか?それらを異なるものにするcellForRowAtIndexPathにsometingがありますか?
これらは同じです。何の編集など
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.
しかし、この単純なsnipetで
ルックはありませんが、それは私が、細胞が時々後者のデキュー後に失敗しました。
これは結果
(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>>
のtableViewがグループ化されたモードになっているところであります。私はそれがそれと関係があると思う。
Mark、セル幅とセルのcontentView幅が同じではない理由を説明してください。 –