如何为 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

然后,您可以对UIView进行子类化并覆盖其layerClass以返回渐变图层,然后 根据需要调整视图的大小和位置:

override class func layerClass() -> AnyClass {
return CAGradientLayer.self
}
// configure the layer with color, end/start and locations in init()

这允许您将该视图拖放到任何位置,并使用自动布局来根据需要调整其大小和位置。

您可以创建一个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

最新更新