框架不会更新UITableViewCell的自动布局子视图
问题描述:
我想向自定义UITableViewCell的子视图添加阴影。子视图用作单元格的可见背景(单元格的根视图清晰)。框架不会更新UITableViewCell的自动布局子视图
单元格使用xib在界面生成器中进行布局。子视图的布局使用自动布局约束到单元格的四个边缘。
对于不同宽度的设备,子视图本身似乎自动调整好。从堆栈溢出研究,我想我必须把我的框架相关代码放在layoutSubviews方法中。我把有我的影子绘图代码:
layer.shadowPath = [[UIBezierPath bezierPathWithRoundedRect:subView.bounds cornerRadius:3.0]CGPath];
的影子出现,但只对帧的大小将被重新调整之前,一些调试后,似乎是视图框矩形,在Interface Builder可修改的常数(对于自动布局视图控制器,这实际上是灰色的:@)。
从进一步调试看来该子视图帧从不更新,即使细胞视图帧是。
layoutSubviewscalled, parent view frame size: 180 subview frame size: 148.000000
layoutSubviewscalled, parent view frame size: 375 subview frame size: 148.000000
是这样的(这是由印刷视图的在layoutSubviews框架的宽度进行)错误?我错过了什么吗?我能做些什么来谴责这一点?
非常感谢您的回复。我之前回答了这个问题,但没有耐心。 这似乎工作,但只在第三次layoutSubviews呼叫。任何想法如何我只能在视图更新后绘制阴影? – 2014-10-07 17:14:00
@SameerJJ事实证明我也遇到了自动布局的问题,在我的情况下,现在我在初始化我的自定义UIScrollView之前调用'self.layoutIfNeeded()',在我的View Controller中(正如Apple文档所述:_使用视图接收消息作为根视图,这个方法设置从根开始的视图子树._)你尝试过'[self setNeedsLayout]'后跟'[self layoutIfNeeded]''? – 2014-10-07 17:48:24
是的,我没有尝试,但它屈服了不成功。即使布局最终返回正确的框架尺寸,它仍然总体上非常错误。我真的认为苹果公司需要在这里站稳脚跟,让自动布局减轻工作负担。我已经回到了这个单元格的编程视图布局。感谢您的帮助 – 2014-10-08 21:14:58