使用CGRectMake重绘UIButton不会更新UIButton位置?

时间:2015-01-27 04:53:55

标签: ios objective-c iphone uibutton

我正在尝试使用以下方法更新应用中多个UIButton的位置和大小:

-(void)viewDidAppear:(BOOL)animated {
    _UIButton1.frame = CGRectMake(-7, 35, 212, 77);
    _UIButton2.frame = CGRectMake(139, 149, 290, 77);
    // And so on for several more buttons
}

但是,当我使用此代码时,这些按钮只显示在故事板上设置位置的任何位置,而不是我以编程方式设置的位置。如何将这些按钮显示在与我在故事板中设置的位置不同的位置?

2 个答案:

答案 0 :(得分:3)

打开情节提要文件,确保右侧窗格显示“工具”菜单,然后取消选中Use Auto Layout

启用自动布局后,您必须为视图设置约束,并为这些约束创建出口,以便使用代码移动。如果要直接使用框架,则需要关闭自动布局。它必须是一个或另一个。

自动布局可能很棒,但如果不了解您想要达到的目标,就很难提出建议。

答案 1 :(得分:0)

请更新-(void) viewWillAppear方法中的框架,如viewDidAppear您的视图实际设置并准备好显示。 更新按钮的框架后,请使用以下代码行

[self.view laoutIfNeeded];

由于