从头开始构建一个新的示例项目,动态tablevIEw单元格高度正常运行.然后我尝试通过将我的项目修剪到最低限度来复制它并且它仍然被打破(前几个单元格错误).为工作示例和非工作示例附加完整项目.项目/代码字面上看起来99%相同,因为对我的爱无法弄清楚1%的差异在哪里.唯一突然出现在我身上的是我使用了不同大小的类(wAny hAny vs wCompact hRegular但是我无法想象这会做什么,因为我只是在纵向测试
工作项目:
不工作的项目:
WORKING (new project from scratch):https://drive.Google.com/file/d/0B_EIkjmOj3ImWXZjVFZMYXZmVGc/vIEw?usp=sharingNOT WORKING (my project,cleaned up to it's bare minimum)https://drive.Google.com/file/d/0B_EIkjmOj3ImMGRNOXU2RlNkWEk/vIEw?usp=sharing
已经在网上试图了解发生了什么,但由于某种原因,我的单元格高度不正确,直到我滚过原型单元格.
初始加载时:
滚动浏览每个单元格后:
背景颜色:
cell.postTextLabel.backgroundcolor = [UIcolor orangecolor];
subVIEw.backgroundcolor = [UIcolor bluecolor];
contentVIEw.backgroundcolor = [UIcolor browncolor];
这里没有做太多花哨的东西:只是原型单元格,子视图和三个标签(用户名,时间戳,文本).
下面的截图突出显示了我在Storyboard中的约束:
我从Parse中提取数据,并在设置tableVIEw布局时重新加载数据
[self.tableVIEw setNeedsLayout];
[self.tableVIEw layoutIfNeeded];
[self.tableVIEw reloadData];
最后我的cellForRowAtIndexPath方法:
- (UItableVIEwCell *)tableVIEw:(UItableVIEw *)tableVIEw cellForRowAtIndexPath:(NSIndexPath *)indexPath{ return [self postCellAtIndexPath:indexPath];}- (UItableVIEwCell *)postCellAtIndexPath:(NSIndexPath *)indexPath { static Nsstring *PostCellIDentifIEr = @"PostCell"; PostCell *cell = (PostCell *)[self.tableVIEw dequeueReusableCellWithIDentifIEr:PostCellIDentifIEr forIndexPath:indexPath]; [self configurePostCell:cell atIndexPath:indexPath]; [cell setNeedsLayout]; [cell layoutIfNeeded]; [cell setNeedsUpdateConstraints]; [cell updateConstraintsIfNeeded]; return cell;}解决方法 最后我发现了问题,为什么它不起作用.我下载了由您上传到驱动器的项目,并对其进行了修改.并发现您使用紧凑的常规大小类导致错误的问题.在将您的大小类转换为Any之后,Any工作正常且完美.因此,解决方案的关键是将wCompact hRegular更改为wAny hAny.代码没有变化.
这是最初的答案.
详细解答:
1)对于大小类首先阅读苹果的this文件.
2)在您的破解演示中,选择大小类,如下所示:
这表示您选择了特定视图,如紧凑宽度和常规高度,这意味着此自动布局仅适用于特定的iPhone纵向方向.
Compact WIDth | Regular Height combination specifIEs layout changes
that apply only to sizes resembling iPhone devices in portrait
orIEntation.The control wCompact hRegular indicates the compact wIDth and regular
height size classes.
我使用了以下大小的类,并且在你的工作项目中,我可以看到下面的大小类:
在这个Size类中,它工作正常.
我不知道是苹果的BUG还是什么. !
如果您只想支持纵向模式而只支持iPhone,那么您可以在开发信息中选择iPhone – >设备.对于方向,您可以选择纵向和倒置在设备方向.
希望这可以帮助您找出问题所在.
总结以上是内存溢出为你收集整理的动态TableView单元格高度不正确直到滚动后(iOS 8) – 附加完整的屏幕截图全部内容,希望文章能够帮你解决动态TableView单元格高度不正确直到滚动后(iOS 8) – 附加完整的屏幕截图所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)