【发布时间】:2017-10-27 06:51:27
【问题描述】:
我最近使用 Swift 4 升级到 Xcode 9,它又更新了所有 iOS 模拟器。 自更新以来,我发现在对 UINavigationBar 应用渐变之后;标题和按钮没有出现,但仍然具有功能。
这是应用我的渐变的代码 -
extension UIView {
func applyNavGradient(colours: [UIColor]) -> Void {
self.applyNavGradient(colours: colours, locations: nil)
}
func applyNavGradient(colours: [UIColor], locations: [NSNumber]?) -> Void {
let gradient: CAGradientLayer = CAGradientLayer()
gradient.frame = self.bounds
gradient.colors = colours.map { $0.cgColor }
gradient.locations = locations
self.layer.addSublayer(gradient)
self.backgroundColor = UIColor.clear
}
}
class ViewController {
override func viewDidLoad() {
UINavigationBar.applyNavGradient(colours: redFade)
}
这曾经在带有 iOS10 的 Xcode 8 中工作 -
现在我得到的就是这个;
谁能给我一些关于为什么会发生变化的线索?
提前谢谢你!
克里斯。
【问题讨论】:
-
如何在
UINavigationBar中设置标题和按钮 - 您也可以添加此代码吗? -
是的,当然/该按钮已在情节提要中设置并且永远不会更改。标题是它自己的 UINavigationItem 并且设置为;
self.navTitle.title ="My Application" -
IOS11 的变化是导航中的自定义控件必须有约束或者必须报告它的大小。如果您不这样做,您的控件的大小将为零。
-
好的。我明白了,等我回来再试一试。
-
我试过这个,但由于某种原因我无法让它工作。它不会让我添加约束,也不会让我为其设置大小。有什么建议吗?
标签: ios swift xcode ios10 ios11