我试图将阴影添加到自定义UITableViewCell的子视图中。子视图用作单元格的可见背景(单元格的根视图是清晰的)。
使用xib在接口构建器中布置单元格。子视图使用自动布局约束布局到单元格的4个边缘。
对于不同宽度的设备,子视图本身似乎可以自动调整。从堆栈溢出研究中我发现我必须将我的依赖于帧的代码放在layoutSubviews方法中。我把阴影绘图代码放在那里:
layer.shadowPath = [[UIBezierPath bezierPathWithRoundedRect:subView.bounds cornerRadius:3.0]CGPath];
阴影出现,但仅在调整大小之前显示帧的大小,这在调整之后似乎是视图框架矩形,在界面构建器中是一个可修改的常量(对于autolayout视图控制器实际上是灰色的:@ )。
从进一步调试看来,即使单元格视图框是。(这是通过在layoutSubviews中打印视图框架的宽度来执行),子视图框架永远不会更新。
layoutSubviewscalled, parent view frame size: 180 subview frame size: 148.000000
layoutSubviewscalled, parent view frame size: 375 subview frame size: 148.000000
这是一个错误吗?我错过了什么吗?我该怎么做才能谴责这个?