在视图中重定位时何时更改方向?

时间:2011-12-01 16:02:24

标签: iphone ios ipad uiview orientation

我认为有很多子视图,每个子视图都有自己的图形,不同的是纵向和横向。我应该在方向改变时何时加载新图形?

如果不应该是layoutSubviews,我也不喜欢从UIViewController重新加载资源的想法,因为我拥有复杂的视图层次结构(需要将这些信息传递下去)。

还可以选择在NSNotificationCenter中注册每个视图中的方向更改,并在更改时加载新资源。但是我也不太喜欢它,因为我相信iOS中应该有一个机制可以实现这一点。或者,也许我应该以不同的方式思考,并为肖像和风景构建不同的视图......

你有什么建议?

1 个答案:

答案 0 :(得分:1)

我希望您的子视图都扩展了一个自定义视图类,该视图类具有在纵向和横向图形之间交换的-setOrientation:方法。然后在您的视图控制器中,我将覆盖-willRotateToInterfaceOrientation:duration:并添加一个循环来设置所有子项的方向,从而在方向更改时使图形交换。

我认为这是最直接的方式。使用NSNotificationCenter可能会非常棘手,而且您无法保证每个孩子都会收到通知。

无论如何,这就是我的表现。如果您需要示例,请告诉我。