如何實現UIView
的單面和淡出邊框。對不起,我沒有足夠的聲望發佈屏幕截圖。但在iOS
本地聯繫人應用中有一個示例。如果你點擊「+」然後「添加電話」,將會出現垂直線,這正是我想要的。如何爲uiview製作淡出邊框
我已經爲UIView
實施了單邊邊界,但找不到一種方法使其淡出。我試過CIFilter
,這沒有奏效。然後我注意到這種淡出效果與陰影一樣。我試圖通過設置陰影來模擬淡出,但又失敗了。
感謝您提前給出任何答案和建議。
如何實現UIView
的單面和淡出邊框。對不起,我沒有足夠的聲望發佈屏幕截圖。但在iOS
本地聯繫人應用中有一個示例。如果你點擊「+」然後「添加電話」,將會出現垂直線,這正是我想要的。如何爲uiview製作淡出邊框
我已經爲UIView
實施了單邊邊界,但找不到一種方法使其淡出。我試過CIFilter
,這沒有奏效。然後我注意到這種淡出效果與陰影一樣。我試圖通過設置陰影來模擬淡出,但又失敗了。
感謝您提前給出任何答案和建議。
你可以使用一個CAGradientLayer
:
let layer = CAGradientLayer()
layer.colors = [UIColor.white.cgColor, UIColor.gray.cgColor]
// play around with layer.locations and layer.{startPoint|endPoint} to suit your needs
然後,您可以繼承UIView
並覆蓋其layerClass
返回梯度層,然後 大小和位置這一觀點,請你:
override class func layerClass() -> AnyClass {
return CAGradientLayer.self
}
// configure the layer with color, end/start and locations in init()
這允許您將該視圖放在任何位置,並使用自動佈局來調整大小並按照您的要求放置它。
非常感謝!我現在正在UIView的init中使用圖層。我認爲我在正確的軌道上,但只是有一個問題:爲什麼UIView將其圖層屬性設置爲只讀?爲什麼不簡單地讓我們設置圖層屬性而不是先返回layerClass,然後在init中配置圖層(在此之前我沒有關於CALayer的經驗)。對不起,我投了你的答案,但沒有算,因爲我現在沒有足夠的聲望。 – Todanley
'UIView'由'CALayer'支持,因此UIKit需要在初始化時知道該圖層的類型(請注意'layerClass'返回該圖層的類型,而不是實例)。也就是說,視圖的背景層在創建後無法更改。如果您發現我的答案合適,我相信您可以將其標記爲正確答案:-) –
我已經完成了使用CAGradientLayer後的工作。非常感謝你。而你對CALayer的解釋解決了我的問題。現在我明白爲什麼UIView的圖層屬性是隻能得到的,非常感謝。我想我已通過點擊該勾號成功接受了您的答案。 – Todanley
你想褪色到另一種RGB顏色? – SPlatten
@SPlatten從灰色漸變爲白色。我使用下面的答案中建議的CAGradientLayer完成了它。感謝您的幫助 – Todanley