[英]How to make a fade out border for uiview
如何為UIView
實現單邊和淡出邊框。 很抱歉,我沒有足夠的聲譽來發布屏幕截圖。 但是在iOS
本機聯系人應用程序中有一個示例。 如果你點擊“+”然后“添加電話”,會有一條垂直線,這正是我想要的。
我已經為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
然后,您可以layerClass
UIView
並覆蓋其layerClass
以返回漸變圖層,然后根據需要調整該視圖的大小和位置:
override class func layerClass() -> AnyClass {
return CAGradientLayer.self
}
// configure the layer with color, end/start and locations in init()
這允許您將該視圖放在任何地方,並使用自動布局來根據需要調整大小和位置。
您可以創建一個CAGradientLayer
,但不是CAGradientLayer
UIView
,只需將其設置為圖層的 mask 屬性:
let gradientMaskLayer = CAGradientLayer()
gradientMaskLayer.frame = maskedView.bounds
gradientMaskLayer.colors = [UIColor.clear.cgColor, UIColor.white.cgColor]
gradientMaskLayer.locations = [0.8, 1]
maskedView.layer.mask = gradientMaskLayer
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.