如何为UIView
实现单边和淡出边框。对不起,我没有足够的声誉来发布截图。但iOS
原生联系人应用程序中有一个示例。如果你点击" +"那么"添加手机",会有一条垂直线,这正是我想要的。
我已经为UIView
实现了单边框,但无法找到让它淡出的方法。我尝试了CIFilter
,但没有成功。然后我注意到这种淡出效果与阴影相似。我试图通过设置阴影来模拟淡出,但又失败了。
感谢您提前给出任何答案和建议。
答案 0 :(得分:0)
您可以使用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()
这允许您在任何地方放下该视图,并使用自动布局来根据需要调整大小和位置。
答案 1 :(得分:0)
您可以创建一个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