我嘗試這樣做,但是當我嘗試在模擬器中的不同 iPhone 型號上運行時,影像的位置發生了變化。我需要用 CGRect 完全做到這一點。提前致謝!
func configure() {
//MARK: Logo Image
view.addSubview(logo)
logo.image = UIImage(named: "cafelogo")
logo.layer.cornerRadius = 25
logo.frame = CGRect(x: 100, y: 200, width: 150, height: 150)
uj5u.com熱心網友回復:
您應該使用自動布局約束——但首先,向您展示如何使用顯式矩形/框架來執行此操作:
func configure() {
//MARK: Logo Image
view.addSubview(logo)
logo.image = UIImage(named: "cafelogo")
logo.layer.cornerRadius = 25
logo.frame = CGRect(x: 0, y: 0, width: 150, height: 150)
// center it in the view
logo.center = view.center
}
但是...您必須從viewDidLayoutSubviews(). 否則,view的框架尚未布局:
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
configure()
}
請注意,如果框架發生view變化 - 例如設備旋轉 - 您的徽標影像視圖將不再居中。您可以添加一些新代碼來重新居中,但讓自動布局完成所有作業要容易得多。
您可以在以下位置使用此代碼viewDidLoad():
logo.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(logo)
logo.image = UIImage(named: "cafelogo")
logo.layer.cornerRadius = 25
NSLayoutConstraint.activate([
logo.widthAnchor.constraint(equalToConstant: 150.0),
logo.heightAnchor.constraint(equalToConstant: 150.0),
logo.centerXAnchor.constraint(equalTo: view.centerXAnchor),
logo.centerYAnchor.constraint(equalTo: view.centerYAnchor),
])
現在您的徽標影像視圖為 150x150,并且始終居中位于view.
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/491676.html
