gpt4 book ai didi

swift - 我怎样才能用阴影 View iOS swift 实现这种圆角半径?

转载 作者:行者123 更新时间:2023-11-30 10:39:59 26 4
gpt4 key购买 nike

我正在尝试制作一个具有左上角半径和右下角半径并带有阴影的设计。我能够使阴影也成为 View 周围的角半径。但是当我尝试仅将角半径赋予侧面阴影或半径时,未显示。兔子我做了什么

 extension UIview {
//corner radius function
func roundCornersForView(corners:UIRectCorner, radius: CGFloat) {

DispatchQueue.main.async {
let path = UIBezierPath(roundedRect: self.bounds,
byRoundingCorners: corners,
cornerRadii: CGSize(width: radius, height: radius))
let maskLayer = CAShapeLayer()
maskLayer.frame = self.bounds
maskLayer.path = path.cgPath
self.layer.mask = maskLayer
}
}


func setShadow(){
self.layer.masksToBounds = false
// set the shadow properties
self.layer.shadowColor = UIColor.black.cgColor
self.layer.shadowOffset = CGSize(width: 0, height: 1.0)
self.layer.shadowOpacity = 0.2
self.layer.shadowRadius = 4.0
self.roundCornersForView(corners: [.topLeft, .bottomRight], radius: 20)

}



}

/// finally call it table cell


cell?.BackView.setShadow()

here is the design what i want to do

最佳答案

1) 为什么要编写一个单独的函数来绘制矩形,然后将cornerRadius蒙版应用于您的 View ?将函数的内容替换为:

yourView.layer.masksToBounds = true
yourView.layer.cornerRadius = 20
yourView.layer.maskedCorners = [.layerMinXMinYCorner, .layerMaxXMaxYCorner]

2) 一旦你遮盖 View 的角并将其 masksToBounds 属性设置为 true,你就可以为 View 的图层设置阴影,它会自动环绕圆角如您所愿:-

yourView.layer.shadowOffset = CGSize(width: 0, height: -0.5)
yourView.layer.shadowRadius = 1
yourView.layer.shadowColor = UIColor(red:0.01, green:0.05, blue:0.09, alpha:0.18).cgColor
yourView.layer.shadowOpacity = 0.8

3) 建议在单元类的 awakeFromNib()init() 中使用单元格的 UI 属性(在您的情况下是 subview 的cornerRadius 和阴影)方法而不是在委托(delegate)方法中,因为它们被多次调用,因此破坏了可重用性的全部要点

已经测试了应用阴影的代码,它对我来说效果很好。希望这有帮助!

关于swift - 我怎样才能用阴影 View iOS swift 实现这种圆角半径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57035737/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com