此视图带有一系列按钮,适用于纵向设计,但不适用于横向设计。
http://luigidaddario.it//iOS%20Simulator%20Screen%20shot%2029.dic.2013%2022.15.55.png
http://luigidaddario.it//iOS%20Simulator%20Screen%20shot%2030.dic.2013%2020.10.13.png
如何正确布置横向和纵向?
答案 0 :(得分:2)
您似乎已使用自动调整大小的蒙版添加了按钮(尽管可能缺少左下方黄色按钮的蒙版)。您至少有两种方法可以采用:
在视图控制器的viewWillLayoutSubviews
中,根据该方向的位置,以编程方式设置每个按钮的frame
。例如,如果您有一组按钮,则可以执行以下操作:
- (void)viewWillLayoutSubviews
{
NSInteger cols, rows;
if (self.view.bounds.size.width < self.view.bounds.size.height)
{
cols = 3;
rows = 4;
}
else
{
cols = 4;
rows = 3;
}
CGFloat pixelsWide = self.view.bounds.size.width / cols;
CGFloat pixelsTall = self.view.bounds.size.height / rows;
for (NSInteger i = 0; i < 11; i++)
{
UIView *view = self.buttons[i];
NSInteger row = floor(i / cols);
NSInteger col = i % cols;
view.center = CGPointMake((col + 0.5) * pixelsWide,
(row + 0.5) * pixelsTall);
}
}
(如果使用自动布局,而不是设置框架,则需要设置相应的约束。但是你说你没有使用自动布局。)
您可以使用UICollectionView
,而不是自己将这些按钮添加到视图中,它会处理适合方向的单元格的位置。对于这种情况可能有些过分,但是当您想要将视图布局为一系列单元格时,集合视图是一个很好的选择。请参阅UIKit User Interface Catalog: Collection Views。