【发布时间】:2014-10-07 08:29:16
【问题描述】:
我正在尝试为自定义 UITableViewCell 的子视图添加阴影。子视图作为单元格的可见背景(单元格的根视图清晰)。
单元格在界面构建器中使用 xib 进行布局。子视图使用自动布局约束对单元格的 4 个边缘进行布局。
对于不同宽度的设备,子视图本身似乎可以自动调整大小。从堆栈溢出研究中,我认为我必须将我的帧相关代码放在 layoutSubviews 方法中。我把我的阴影绘制代码放在那里:
layer.shadowPath = [[UIBezierPath bezierPathWithRoundedRect:subView.bounds cornerRadius:3.0]CGPath];
阴影出现了,但只是调整大小之前的框架大小,经过一些调试后似乎是视图框架矩形,界面构建器中的一个可修改常量(对于自动布局视图控制器实际上是灰色的:@ )。
从进一步的调试来看,子视图框架似乎永远不会更新,即使单元格视图框架是。(这是通过在 layoutSubviews 中打印视图框架的宽度来执行的)
layoutSubviewscalled, parent view frame size: 180 subview frame size: 148.000000
layoutSubviewscalled, parent view frame size: 375 subview frame size: 148.000000
这是一个错误吗?我错过了什么吗?我能做些什么来谴责这个?
【问题讨论】:
标签: uitableview autolayout xcode6 xib