我知道这是由tablevIEw在运行时不知道自定义单元格的高度引起的,但不知道如何克服这个问题.这是iOS 8 Xcode 6.我为自定义单元格的内在大小做了所有自动布局所需的方法…
>带有标准单元格的标准tablevIEw,在代码中只创建一个(row = 2)作为自定义单元格;
customCell:
-(CGSize)intrinsicContentSize
{
//用于测试目的的硬编码
return CGSizeMake(500.0,450.0);
}
>在iOS模拟器上运行时,发现customCell显示在其行下方的其他单元格下方,高度标准,与设置其他标准单元格高度相同,而不是其高度设置比其他单元格大得多.
在表视图控制器中:
- (UItableVIEwCell *)tableVIEw:(UItableVIEw *)tableVIEw cellForRowAtIndexPath:(NSIndexPath *)indexPath { UItableVIEwCell *cell; pageVIEwCelltableVIEwCell* customCell; if (indexPath.row != 2) { cell = [tableVIEw dequeueReusableCellWithIDentifIEr:@"regularCell" forIndexPath:indexPath]; cell.textLabel.text = [Nsstring stringWithFormat:@"table Row %lu",indexPath.row]; return cell; } else { customCell = [tableVIEw dequeueReusableCellWithIDentifIEr:@"customCell"] ; if (customCell == nil) { customCell = [[customCell alloc] init]; } customCell.parentVIEwController = self; [customCell setNeedsUpdateConstraints]; [customCell setNeedsLayout]; [customCell setNeedsdisplay]; return customCell; } return nil ;}- (CGfloat)tableVIEw: (UItableVIEw*)tableVIEw EstimatedHeightForRowAtIndexPath: (NSIndexPath*) indexPath { if (indexPath.row != 2) return 10; else return 450; } - (CGfloat)tableVIEw: (UItableVIEw*)tableVIEw HeightForRowAtIndexPath: (NSIndexPath*) indexPath { if (indexPath.row != 2) return 10; else return 450; }
在模拟器上运行时:
得到以下错误消息:
仅警告一次:检测到约束模糊地建议tablevIEw单元格的内容视图的高度为零的情况.我们正在考虑无意中崩溃并使用标准高度.
tableVIEw.estimatedRowHeight = 88.0tableVIEw.rowHeight = UItableVIEwautomaticDimension
下面列出了两个教程:
> Understanding Self Sizing Cells and Dynamic Type in iOS 8
> iOS 8: Self Sizing Table View Cells with Dynamic Type
以上是内存溢出为你收集整理的ios – 未正确设置自定义UITableviewcell高度全部内容,希望文章能够帮你解决ios – 未正确设置自定义UITableviewcell高度所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)