如何设置.topright与TableView中细胞内高值T垄断redius斯威夫特3
问题描述:
我想与阴影效果设置为圆角半径不同的价值观的TableView细胞内的UIView,就像这样:如何设置.topright与TableView中细胞内高值T垄断redius斯威夫特3
我的代码是:
cell.headerView.round(corners: [.topRight], radius: 35)
extension UIView {
func round(corners: UIRectCorner, radius: CGFloat) {
let path = UIBezierPath(roundedRect:self.bounds, byRoundingCorners: corners, cornerRadii: CGSize(width: radius, height: radius))
let mask = CAShapeLayer()
mask.path = path.cgPath
self.layer.mask = mask
self.layoutIfNeeded()
}
}
这是工作在iPhone模拟器SE但不工作的iPhone 6S模拟器。
答
夫特4
myView.clipsToBounds = true
myView.layer.cornerRadius = 20
myView.layer.maskedCorners = [.layerMaxXMaxYCorner,.layerMinXMaxYCorner,.layerMinXMinYCorner]
答
我已经使用几乎相同的实现,它是两者的设备上工作正常以及模拟器。
extension UIView
{
func roundCorners(corners: UIRectCorner, radius: CGFloat)
{
let bounds = self.bounds
let maskPath = UIBezierPath(roundedRect: bounds, byRoundingCorners: corners, cornerRadii: CGSize(width: radius, height: radius))
let maskLayer = CAShapeLayer()
maskLayer.frame = bounds
maskLayer.path = maskPath.cgPath
self.layer.mask = maskLayer
}
}
class CustomCell: UITableViewCell
{
@IBOutlet weak var customView: UIView!
override func awakeFromNib()
{
super.awakeFromNib()
self.customView.layer.cornerRadius = 10.0
self.customView.roundCorners(corners: [.topRight], radius: 35.0)
}
}
截图:
我想创建自己的道路,而不是使用'UIBezierPath(圆角矩形:byRoundingCorners:cornerRadii:)'应该适用于每个角落一样的效果我发现奇怪的是它可以在SE上运行而不是6S,而该方法不应该产生你想要的效果。 – Larme
我想设置右上角视角的角度更加圆角,其余3个角度相同 –