我試圖在按鈕上的透明圖像後面創建一個具有清晰背景的按鈕和一個UIVisualEffectView
。 myButton.imageView.image
有一個圖像集(myPNGWithTransparentBackground
)。在透明圖像後面插入UIVisualEffectView UIButton上的圖像
我認爲這將是非常簡單的,但它被證明是比我預想的更困難......這裏就是我試過:
let frost = UIVisualEffectView(effect: UIBlurEffect(style: .light))
frost.frame = button.bounds
frost.autoresizingMask = [.flexibleWidth, .flexibleHeight]
// button.insertSubview(frost, at: 0)
// button.insertSubview(frost, at: button.subviews.startIndex)
// button.insertSubview(frost, at: button.subviews.endIndex)
// button.imageView?.insertSubview(frost, at: (button.imageView?.subviews.endIndex)!)
button.imageView?.insertSubview(frost, at: (button.imageView?.subviews.startIndex)!)
無論在何處我把insertSubview
的,它總是結束了在UIButton的imageView.image前面。
更新
什麼,我已經試過Here's a Git repo。該子類被稱爲「FrostyButton」。
您可能必須走子類路線。我認爲*「需要我自己想要的UIView圖層」*是一個完美的例子,其中協議和擴展以及使用超類不適合子類化。 – dfd
子類型相同的行爲。這看起來應該很簡單。我放心,我正在做一些真正愚蠢的事情。 – Adrian
好的,就這樣我明白了,你的演示有一個藍色的背景,它會被按鈕框模糊,在模糊的前面會有一個背景透明的圖像。正確? – dfd