簡體   English   中英

Swift3中心UIbutton

[英]Swift3 center UIbutton

好的,我在.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應用程序,也許在我頭上,但是我了解Web編程,並且我知道要使其自動居中,我需要總屏幕顯示寬度和按鈕寬度。 然后,我需要對按鈕說,將屏幕視圖寬度除以2。

例如在CSS中,我們這樣做

#button{margin:0 auto;}

但這不是HTML或CSS。 它是SWIFT3

嘗試這個:

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

您的信息不正確,因為origin.x是按鈕視圖的第一個點(左上角),而不是視圖的中心,您可以將其背景顏色更改為其他顏色以查看它

另外,變量名稱應為lowerCase,后跟代碼約定

您應該使用Autolayout來完成所需的操作 ,並且操作方式類似於Main.storyboard內部的ViewController中的以下操作 :( 控件+鼠標左鍵 ->向上拖動藍線 ,然后釋放控件然后單擊鼠標左鍵 ,您將看到彈出窗口

在彈出窗口中,選擇以下選項:

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

但是,如果要以編程方式進行操作,請在viewWillLayoutSubviews方法中進行操作:

class ViewController: UIViewController {

  @IBOutlet weak var button: UIButton!

  override func viewWillLayoutSubviews() {
    super. viewWillLayoutSubviews()

    button.center = view.center
  }

}

在您的項目中啟用了自動排版嗎? 如果啟用了自動版式,則在viewdidLoad:中更改UI可能不會給出適當的結果。 使用-viewWillLayoutSubviews方法執行UI任務,它要使按鈕居中

myButton.center = self.view.center 

希望它能工作。

以這種方式將代碼添加到viewDidAppear ,以顯示實際視圖。 另外,如果要居中,則應使用button.center.x而不是button.frame.origin.x

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM