我是如何旋转UINavigationBar的?

时间:2010-11-09 14:42:49

标签: iphone objective-c rotation uinavigationbar

我有一个简单的UIViewController,我在viewDidLoad中有:

_navigationBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
[self.view addSubview:_navigationBar];

_toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 416, 320, 44)];   
[self.view addSubview:_toolbar];

在didRotateFromInterfaceOrientation中,我把:

_navigationBar.frame = CGRectMake(0, 0, self.view.bounds.size.width, 44);

它有效,但我不太喜欢它所做的效果。有任何想法吗? 感谢

1 个答案:

答案 0 :(得分:0)

您应该在初始化时为每个视图设置适当的autoresizingMask,而不是在视图旋转时手动更改其框架/边界/位置。 这样,视图旋转将使其子视图自动调整大小(调整)。

例如:

[navigationBar setAutoResizingMask:UIViewAutoresizingFlexibleWidth];

或者您可以使用|组合各种UIViewAutoresizing蒙版运营商。 在每个视图中调整弹簧时,此属性与IB的作用相同(在检查器窗口中)