0
我正在重構一個Swift 3項目到Swift 4,我遇到了一個情況,那些先前應用了陰影的按鈕不再繪製陰影。陰影不在UIButtons上繪圖
我使用這個代碼,以繪製陰影:
extension UIButton {
func drawShadow() {
self.layer.drawsAsynchronously = true
self.layer.masksToBounds = false
self.layer.shadowColor = UIColor.black.cgColor
self.layer.shadowOffset = CGSize.zero
self.layer.shadowRadius = self.layer.cornerRadius
self.layer.shadowOpacity = 0.5
}
}
我打電話的代碼使用此代碼來繪製陰影viewDidLayoutSubviews
:
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
buttonArray = [self.buttonOne, self.buttonTwo, self.buttonThree, self.buttonFour]
buttonArray.forEach { button in
button.subviews.filter{$0 is UIImageView}.forEach({ imageView in
imageView.contentMode = .scaleAspectFit
})
button.clipsToBounds = false
button.drawShadow()
}
}
我已經試過addding代碼在viewDidLayoutSubviews
在其他地方,看看我能不能畫出來。我試過viewDidLoad
,viewWillLayoutSubviews
,viewDidAppear
等。我嘗試通過重新佈局按鈕和「重新開始」,清理派生數據,從終端和Xcode內核模擬器。
這些按鈕包含在UIStackView
之內。我有兩個水平堆棧視圖,其中包含嵌入在垂直堆棧視圖中的兩個按鈕。如果任何人有任何建議重新:還有什麼要嘗試,我歡迎你的建議。謝謝你的閱讀。
這就是它!我也改變了'cornerRadius'。謝謝! – Adrian