0

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

使用 Interface Builder 的 Size&Position 位,我可以很容易地用一个控件做到这一点,但我如何设置其他控件来做到这一点?

这是您必须以编程方式执行的操作吗?

谢谢

麦克风 在此处输入图像描述

4

2 回答 2

0

这取决于控件在 xib 周围的位置,在大多数情况下,您应该能够避免使用界面生成器中“自动调整大小”下显示的属性进行编码。基本上你在这里所做的一切都可以用代码来完成

view.autoresizingMask = UIViewAutoresizing<and the various masks here>

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

-(void)viewDidLoad{

self.view.autoresizesSubviews = YES;

[super viewDidLoad];

}

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

于 2011-03-09T15:30:06.680 回答
0

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

view.autoresizingMask = UIViewAutoresizingFlexibleRightMargin;

您可能无法通过这种方式获得所有 5 个标签的准确定位;但是您绝对应该至少可以将它用于其中一些。剩下的,你想实现UIViewControllerwillRotateToInterfaceOrientation:duration:方法。每当 iPad 旋转时都会调用此方法,您可以在该方法中设置标签的位置。

于 2011-03-09T15:14:52.060 回答