如何在iOS中基于设备方向以编程方式创建视图?

时间:2012-07-18 07:28:08

标签: iphone ios ipad user-interface

我想以编程方式创建多个视图,并根据设备方向设置其大小。这就是我现在这样做的方式:

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方法中使用的代码。有没有更简单的方法来做到这一点?

2 个答案:

答案 0 :(得分:1)

当然,你有。

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

实现此基类的方法,并且您需要的所有其他ViewController都继承此BaseViewController

您还可以在此UINavigationItems中配置UIActivityIndicatorsBaseViewController

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

答案 1 :(得分:0)

嘿,你不必这样做。为视图设置AutoResizingMask,您可以在此处指定不同边框,高度和宽度与父视图大小更改的差异。

永远不要尝试手动更改它。它会变得复杂。总是让苹果为你做...