Swift3中心UI按钮

时间:2016-09-22 10:45:51

标签: ios swift uibutton swift3

好的,我已经在.swift故事板上添加了一个按钮,然后我将以下代码添加到了我的ViewController.swift

 @IBOutlet weak var HelloButton: UIButton!

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.

    HelloButton.frame.origin.x = view.frame.size.width / 2



}

然而,当我在iPhone 5s上测试它时,它会将其移动到我的屏幕右侧并且不会使其居中。我不确定我需要做什么才能使按钮居中。

是的,这是我的第一个helloWorld应用程序,也许是我的头脑,但我理解网络编程,我理解为使其自动中心我需要有屏幕视图宽度总和按钮宽度。然后,我需要按下按钮,将屏幕视图宽度除以2.

例如在CSS中我们这样做

#button{margin:0 auto;}

但这不是HTML或CSS。 IT' SWIFT3

4 个答案:

答案 0 :(得分:2)

试试这个:

    HelloButton.center.x = view.frame.width/2

你的不正确是因为origin.x是按钮视图的第一个点(左上角),而不是视图的中心,你可以将它的背景颜色改为不同的颜色来看它

此外,变量名称应为lowerCase,后跟代码约定

答案 1 :(得分:2)

您应该使用 Autolayout 来完成您想要的内容,并且您在 Main.storyboard 内的ViewController中执行以下操作: control +鼠标左键单击 - >向上拖动蓝线,然后释放控件鼠标左键单击,您将看到弹出

在弹出窗口中选择选项:

  • 水平居中容器
  • 垂直居中于容器

但如果您想以编程方式执行此操作,请在 viewWillLayoutSubviews 方法中执行此操作:

class ViewController: UIViewController {

  @IBOutlet weak var button: UIButton!

  override func viewWillLayoutSubviews() {
    super. viewWillLayoutSubviews()

    button.center = view.center
  }

}

答案 2 :(得分:0)

在您的项目中启用了Autolayout?如果启用了自动布局,则在viewdidLoad中更改UI:可能无法提供适当的结果。使用-viewWillLayoutSubviews方法来执行UI任务,你想要按下按钮

myButton.center = self.view.center 

希望它会奏效。

答案 3 :(得分:0)

以实际视图显示的方式将代码添加到viewDidAppear。此外,如果您想将其置于中心位置,则应使用button.center.x代替button.frame.origin.x