我认为有很多子视图,每个子视图都有自己的图形,不同的是纵向和横向。我应该在方向改变时何时加载新图形?
如果不应该是layoutSubviews,我也不喜欢从UIViewController重新加载资源的想法,因为我拥有复杂的视图层次结构(需要将这些信息传递下去)。
还可以选择在NSNotificationCenter中注册每个视图中的方向更改,并在更改时加载新资源。但是我也不太喜欢它,因为我相信iOS中应该有一个机制可以实现这一点。或者,也许我应该以不同的方式思考,并为肖像和风景构建不同的视图......
你有什么建议?
答案 0 :(得分:1)
我希望您的子视图都扩展了一个自定义视图类,该视图类具有在纵向和横向图形之间交换的-setOrientation:
方法。然后在您的视图控制器中,我将覆盖-willRotateToInterfaceOrientation:duration:
并添加一个循环来设置所有子项的方向,从而在方向更改时使图形交换。
我认为这是最直接的方式。使用NSNotificationCenter可能会非常棘手,而且您无法保证每个孩子都会收到通知。
无论如何,这就是我的表现。如果您需要示例,请告诉我。