界面生成器去景观

时间:2011-03-09 15:01:45

标签: iphone ios interface-builder uiinterfaceorientation

我在界面构建器中有一个处于纵向模式的XIB,其上有5个UILabel,在视图上均匀分布。当iPhone向右或向左旋转时,我希望标签在视图中均匀分布,以充分利用额外的屏幕宽度。

我可以使用Interface Builder的Size& Position位轻松地使用一个控件执行此操作,但如何设置其他控件来执行此操作?

这是否必须以编程方式完成?

由于

麦克 enter image description here

2 个答案:

答案 0 :(得分:0)

您可以尝试通过设置UIView具有的autoresizingMask属性来执行此操作。这将是最简单的方法,如果你可以让它做你想要的。您可以在创建或初始化视图的任何位置设置此项:

view.autoresizingMask = UIViewAutoresizingFlexibleRightMargin;

您可能无法通过这种方式获得所有5个标签的准确定位;但你绝对应该能够将它用于至少其中一些。其他方面,您希望实现UIViewControllerwillRotateToInterfaceOrientation:duration:方法。只要iPad旋转,就会调用此方法,您可以在该方法中设置标签的位置。

答案 1 :(得分:0)

这取决于控件如何围绕xib定位,在大多数情况下,您应该能够使用界面构建器中“自动调整大小”下显示的属性来避免编码。基本上你在这里做的一切都可以使用

在代码中完成
view.autoresizingMask = UIViewAutoresizing<and the various masks here>

不要忘记以告诉视图重新定位元素的方式实现viewDidLoad方法

-(void)viewDidLoad{

self.view.autoresizesSubviews = YES;

[super viewDidLoad];

}

另外,有用的是在ipad上,在导航控制器中嵌入viewcontrollers使得ipad处理旋转和调整大小问题的大部分。