对不起,我不知道一个更好的头衔。
问题:
我有一个UITableViewCell
具有自动布局,笔尖中的默认高度为300. 300是我UIViewControllers
之一的正确尺寸。
我在容器视图中使用UINavigationController
,容器视图下方是名为UIView
的{{1}}。
在容器视图中有两个FooterView
; UIViewControllers
和VC1
。
当我将VC2
推到VC2
时,我也会更改FooterView的高度VC1
高度常量。
我在动画块中执行此操作,NSLayoutConstraint
我将[self.view setNeedsLayout];
内的UITableViewCell
的高度设置为200。
现在的问题是,当我从VC2
转换为VC1
时,您还会看到VC2
的动画效果为300到200。
我的猜测是,这是因为动画块。我通过删除动画来测试它,并且单元格没有动画(如预期的那样)。
有没有办法阻止这个动画链接?
如果我不够清楚,我很抱歉。
答案 0 :(得分:8)
我需要做的就是覆盖单元格内的layoutSubviews
:
- (void)layoutSubviews
{
[UIView performWithoutAnimation:^{
[super layoutSubviews];
[self.contentView layoutIfNeeded];
_shadowView.layer.shadowPath = [UIBezierPath bezierPathWithRect:_shadowView.bounds].CGPath;
}];
}