使用 CGRectMake 重绘 UIButton 不会更新 UIButton 位置?
Redrawing UIButton using CGRectMake doesn't update UIButton position?
我正在尝试使用以下方法更新我的应用程序中多个 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
}
但是,当我使用此代码时,这些按钮只会出现在 Storyboard 上设置位置的任何位置,而不是我以编程方式设置的位置。我如何让这些按钮出现在与我在 Storyboard 中设置的位置不同的位置?
打开故事板文件并确保右侧窗格显示实用程序菜单,然后取消选中 Use Auto Layout
。
启用自动布局后,您必须在视图上设置约束并为这些约束创建出口以使用代码移动内容。如果您想直接使用框架,则需要关闭自动布局。它必须是其中之一。
Auto Layout 可能很棒,但如果不进一步了解您要实现的目标,就很难提出建议。
请在 -(void) viewWillAppear
方法中更新框架,如 viewDidAppear
您的视图已实际设置并准备好显示。
更新按钮的框架后,请使用以下代码行
[self.view laoutIfNeeded];
谢谢
我正在尝试使用以下方法更新我的应用程序中多个 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
}
但是,当我使用此代码时,这些按钮只会出现在 Storyboard 上设置位置的任何位置,而不是我以编程方式设置的位置。我如何让这些按钮出现在与我在 Storyboard 中设置的位置不同的位置?
打开故事板文件并确保右侧窗格显示实用程序菜单,然后取消选中 Use Auto Layout
。
启用自动布局后,您必须在视图上设置约束并为这些约束创建出口以使用代码移动内容。如果您想直接使用框架,则需要关闭自动布局。它必须是其中之一。
Auto Layout 可能很棒,但如果不进一步了解您要实现的目标,就很难提出建议。
请在 -(void) viewWillAppear
方法中更新框架,如 viewDidAppear
您的视图已实际设置并准备好显示。
更新按钮的框架后,请使用以下代码行
[self.view laoutIfNeeded];
谢谢