나는 collectionViewCell의 UILabel에 그라디언트를 추가하려고합니다.collectionView 셀에서 UILabel에 그라디언트 추가 - 빠른
extension UIView
{
func gradient(colors: [Any], startPoint: CGPoint, endPoint: CGPoint, opacity: Float, location: [NSNumber]?) {
let gradientLayer = CAGradientLayer()
gradientLayer.frame = bounds
gradientLayer.colors = colors
gradientLayer.startPoint = startPoint
gradientLayer.endPoint = endPoint
gradientLayer.opacity = opacity
gradientLayer.locations = location
layer.addSublayer(gradientLayer)
}
}
을 내 collectionViewCell에서 : :이 기능을 사용하고 그라데이션을 추가하려면
@IBOutlet weak var discount: UILabel!
override func awakeFromNib() {
super.awakeFromNib()
discount.gradient(colors: [green,blue], startPoint: CGPoint(x: 0.0, y: 0.5), endPoint: CGPoint(x: 1.0, y: 0.5), opacity: 1, location: [0.5,0.5])
}
을하지만 아무것도 표시되지 않는 것. 그림자 추가는 잘되지만 그라디언트를 추가하면 아무 것도 보이지 않습니다. 왜 그런 일이 일어 났습니까?
@ 의미 - 중요 사항 게시물을 업데이트했습니다. –
UILabel을 하위 클래스로 분류하고 해당 코드를 cellForRowAtIndexPath에 삽입하는 것이 좋습니다. ? –
가장 먼저 눈에 띄는 점은 프레임이있는 경계선으로 그라디언트 레이어를 만들지 만보기의 경계로 동일하게 유지되지 않는다는 것입니다. 따라서보기 크기를 조정하면 그라디언트 레이어의 크기가 적절하게 조정되지 않습니다. 보기 크기가 어느정도인지는 기억이 나지 않지만 문제가 될 수 있습니다. –