首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >按钮和自动布局

按钮和自动布局
EN

Stack Overflow用户
提问于 2013-07-30 15:03:21
回答 2查看 1.1K关注 0票数 0

我想建立这样的界面:

在自动布局禁用的情况下,我成功地创建了这6个按钮,并通过代码对屏幕高度进行了很好的调整。然而,当禁用自动布局时,所有其他控制器都变得“混乱”,所以我尝试创建/调整那些启用自动布局的按钮。在启用自动布局的情况下,无法实现这样的界面。我的问题是,有什么技巧,解决方案来调整这6个按钮的自动布局启用?还是有图书馆?我真的累坏了。谢谢你的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-30 20:13:20

我看到你找到了答案,但我还是会发我的,因为它使用的是另一种方法。当6个按钮之间存在如此多的依赖关系时,试图在IB中(在iOS 6中)获得正确的约束是很困难的(因为系统在IB中为您添加了约束),所以我在代码中这样做了。我这样做的方式是,按钮在任何大小的屏幕或任何方向上都接受整个屏幕,而不必检查屏幕大小:

代码语言:javascript
运行
复制
@interface ViewController ()
@property (strong,nonatomic) NSMutableDictionary *viewsDict;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    self.viewsDict = [NSMutableDictionary dictionary];
    for (int i=1; i<7; i++) {
        UIButton *b = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        [b setTitle:[NSString stringWithFormat:@"Button%d",i] forState:UIControlStateNormal];
        [b setTranslatesAutoresizingMaskIntoConstraints:NO];
        [self.viewsDict setObject:b forKey:[NSString stringWithFormat:@"b%d",i]];
        [self.view addSubview:b];
    }

    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"|[b1][b2(==b1)]|" options:0 metrics:nil views:self.viewsDict]];
    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"|[b3][b4(==b3)]|" options:0 metrics:nil views:self.viewsDict]];
    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"|[b5][b6(==b5)]|" options:0 metrics:nil views:self.viewsDict]];
    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[b1][b3(==b1)][b5(==b1)]|" options:0 metrics:nil views:self.viewsDict]];
    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[b2][b4(==b2)][b6(==b2)]|" options:0 metrics:nil views:self.viewsDict]];
}
票数 2
EN

Stack Overflow用户

发布于 2013-07-30 15:09:22

使用autolayout,您肯定希望将这六个视图封装在另一个UIView中,以防止按钮和其他视图之间的布局交互。如果那个UIView有固定的高度和宽度,它可能就这么简单。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17950624

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档