如何为uiview制作淡出边框
How to make a fade out border for uiview
如何为 UIView
实现单边淡出边框。抱歉,我没有足够的声誉 post 截图。但是 iOS
本机联系人应用程序中有一个示例。如果你点击“+”然后"add phone",就会有一条垂直线,这正是我想要的。
我已经为 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
覆盖为 return 渐变层,然后
尺寸和位置随心所欲:
override class func layerClass() -> AnyClass {
return CAGradientLayer.self
}
// configure the layer with color, end/start and locations in init()
这使您可以将该视图放在任何地方,并使用自动布局根据需要调整大小和位置。
您可以创建一个 CAGradientLayer
,但不要将 UIView
子类化,只需将其设置为图层的遮罩 属性:
let gradientMaskLayer = CAGradientLayer()
gradientMaskLayer.frame = maskedView.bounds
gradientMaskLayer.colors = [UIColor.clear.cgColor, UIColor.white.cgColor]
gradientMaskLayer.locations = [0.8, 1]
maskedView.layer.mask = gradientMaskLayer
如何为 UIView
实现单边淡出边框。抱歉,我没有足够的声誉 post 截图。但是 iOS
本机联系人应用程序中有一个示例。如果你点击“+”然后"add phone",就会有一条垂直线,这正是我想要的。
我已经为 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
覆盖为 return 渐变层,然后
尺寸和位置随心所欲:
override class func layerClass() -> AnyClass {
return CAGradientLayer.self
}
// configure the layer with color, end/start and locations in init()
这使您可以将该视图放在任何地方,并使用自动布局根据需要调整大小和位置。
您可以创建一个 CAGradientLayer
,但不要将 UIView
子类化,只需将其设置为图层的遮罩 属性:
let gradientMaskLayer = CAGradientLayer()
gradientMaskLayer.frame = maskedView.bounds
gradientMaskLayer.colors = [UIColor.clear.cgColor, UIColor.white.cgColor]
gradientMaskLayer.locations = [0.8, 1]
maskedView.layer.mask = gradientMaskLayer