簡體   English   中英

如何為uiview制作淡出邊框

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM