更新视图框架时更新视图框架的好设计是什么?

时间:2014-03-28 17:28:56

标签: ios objective-c uiview

我有一个包含子视图的自定义视图。我希望视图的帧宽与其组合子视图的宽度相同。初始化视图时,宽度未知。

每当数据发生变化时,通过调用setNeedslayout可以根据需要更新子视图的帧,而这又会调用layoutSubviews。但是从相反的方向触发更新(从subView到view)对我来说不起作用。 我尝试在自定义视图中覆盖sizeThatFits以根据其子项返回更新的宽度,但它仅在第一次设置子视图宽度时有效。之后,即使它确实返回了正确的大小,视图的框架也不会更新

我也尝试在自定义视图上调用setFrame,这也不起作用。

我在subView的frame属性和框架更改通知上添加了一个观察者,在视图本身上调用了setFrame,这也没有导致它被重绘。

实现此目的的正确方法是强制视图的框架根据其子视图进行更新和重绘?

0 个答案:

没有答案