我有一个UIViewController,它包含两个视图(来自两个子视图控制器):一个顶级内容视图和一个底部菜单弹出窗口。设置约束,以便在底部菜单展开时,顶部内容视图被压缩:
所有约束都已正确设置,因此在展开和折叠菜单时,子视图都会正确布局。它甚至可以与UIView animateWithDuration:
块一起正常工作(我在动画期间调用[self.view layoutIfNeeded]
来更新子视图的布局)。
但是,“内容视图”区域中的一个视图是包含drawRect:
方法的自定义视图。每次此视图更新时,我都会调用setNeedsDisplay
。第一次调用setNeedsDisplay
时,此视图的动画会中断,并且在再次调用setNeedsDisplay
之前不会更新其帧。我不能让它与所有其他观点动画!注释掉drawRect:
方法,或注释掉[self setNeedsDisplay]
,并且视图会再次完美地显示父视图。
有谁知道我可能做错了什么?
答案 0 :(得分:0)
我认为你应该让iOS为你工作。 如果您的视图需要经常重新绘制,请设置视图的contentMode:
yourView.contentMode = UIViewContentModeRedraw;
它应该在需要时重绘。