0

我想以编程方式创建许多视图并根据设备方向设置它们的大小。这就是我现在的做法:

UIView *view1 = [[UIView alloc] init];

if(UIInterfaceOrientationIsLandscape(self.interfaceOrientation)) 
    view1.frame = CGRectMake (0, 0, 1024, 44);
else 
    view1.frame = CGRectMake (0, 0, 764, 44);

[self.view addSubview:view1];

但是对每一个视图都这样做是很痛苦的。我还必须复制我在- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation) toInterfaceOrientation duration:(NSTimeInterval)duration方法中使用的代码。没有更简单的方法可以做到这一点吗?

4

2 回答 2

1

你当然有。

您唯一需要做的就是创建一个BaseViewController继承自UIViewController

实现这个基类的方法,ViewController你需要的所有其他方法都继承这个BaseViewController

你也可以配置UINavigationItemsUIActivityIndicators在这个BaseViewController

你必须适应面向对象的思维:)

于 2012-07-18T07:33:40.330 回答
0

嘿,你不必这样做。为 View 设置 AutoResizingMask,在这里您可以指定不同的边框、高度和宽度应如何达到父视图大小的变化。

切勿尝试手动更改它。它会变得复杂......总是让苹果为你做......

于 2012-07-18T07:30:31.960 回答