2
在我的swift
應用程序中,我將漸變應用於我的視圖。我用下面的代碼做到這一點:即使它有約束,我的視圖在iphone 5和iphone 6上看起來不同 - 這裏有什麼問題?
@IBOutlet weak var gradientView: UIView!
override func viewDidLoad(){
super.viewDidLoad()
let layer = CAGradientLayer()
layer.frame = CGRect(x: 0, y: 0, width: self.gradientView.frame.width, height: self.gradientView.frame.height)
layer.colors = [UIColor.clear.cgColor, UIColor.white.cgColor]
gradientView.layer.addSublayer(layer)
}
在我的故事板gradientView
是黑色的一個位置:
其約束條件是:
所以觸摸每邊的邊緣,頂部和底部的白色面板。
當我在iPhone5的模擬器中運行它,我有:
這很好。但是,當我在iPhone上運行6S它,我看到:在這裏,因爲應用的約束
什麼問題,?
更換界限幀http://www.andrewgertig.com/2013/08/ios-bounds-vs-frame – Suhaib
gradientView.bounds.width – Suhaib
當viewDidLoad中被調用一切大小它在NIB文件中,這幾乎總是錯誤的。您應該習慣於將所有與大小有關的代碼放入UIViewControllers的viewDidLayoutSubviews和放置UIViews的layoutSubviews中,否則,如果用戶通過旋轉或在iPad上使用分屏來更改屏幕大小,也會出現此問題。 –