簡體   English   中英

為什么在viewDidLoad()中設置UIimage的.center沒有可見效果?

[英]Why does setting the .center of a UIimage in viewDidLoad() have no visible effect?

import UIKit

class ViewController: UIViewController {
    @IBOutlet var Label: UILabel!
    @IBOutlet weak var whiteboxselector: UIImageView!
    @IBOutlet var profilebutton: UIImageView!
    @IBOutlet var friendsbutton: UIImageView!
    @IBOutlet var smallcircle: UIImageView!

    // These are my outlets

    override func viewDidLoad() {
        super.viewDidLoad()

        Label.text = "Loaded"
        print("Loaded")

        // This is the line that runs but doesn't do anything
        whiteboxselector.center = self.friendsbutton.center
    }
}

誰能告訴我為什么?

嘗試將有問題的行放在viewDidLayoutSubviews ,如下所示:

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()
    whiteBoxSelector.center = self.friendsButton.center
}

這里有關於viewDidLayoutSubviews()的更多細節。

另外,為了便於閱讀,您需要在camelCase中編寫變量。

當UIViewController加載到內存時調用ViewDidLoad()。 此時,您的子視圖絕不會被設置並添加到視圖層次結構中。 兩種方式:a)使它在viewDid / Will出現(不太好,被稱為更多次,所以你應該采取懶惰行為)b)使用Adrian方法,使用viewDidLayoutSubviews,這是另一個優點:你可以例如調整對齊基於新方向... c)在故事板中對齊...

暫無
暫無

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

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