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()中.希望这提供一些用途.我花了一段时间试图弄清楚.

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...