ios – UITableViewCell子视图在使用大小类时报告错误的宽度

由于某些原因,在 xcode 6中使用大小类时,我的单元格中的子视图的宽度不正确.我有一个UI ImageView与autolayout的大小(常数:10为顶部,L / R,底部).

当从tableView(tableView:UITableView !,cellForRowAtIndexPath indexPath:NSIndexPath!)调用以下命令时:

println("w: \(cell.mapSnapshotimageView.bounds.size.width) h: \(cell.mapSnapshotimageView.bounds.size.height)")

我总是得到:

w: 580.0 h: 80.0

即使它应该是w:300.0 h:80.0,基于我的320×100单元在iPhone 5S.

一切显示正确,但我想使用子视图的宽度进行其他子视图的一些计算.任何想法为什么会发生这种情况?错误报告或按设计工作?

编辑:

此问题仅适用于最初加载的单元.当细胞被重复使用时,问题本身不存在. println输出重用单元格:

w: 300.0 h: 80.0

解决方法

我也遇到这个问题.当您动态更改视图的大小时,子视图需要相应地更新其值.您在引用这些值之前更新它们.

我的工作是在更新值后引用它们.在这种情况下,它在viewDidAppear()中.希望这提供一些用途.我花了一段时间试图弄清楚.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...