我在斯威夫特有问题。我正在尝试制作一个只在一端圆形的TableViewCell。我知道如何用cornerRadius创建圆形的tableViewCell,但我希望效果只应用于tableViewCell的开头,而结尾是标准的。
现在,使用下面的代码扩展,我得到了这个:
import UIKit
import SwipeCellKit
class CategoryTableViewCell: SwipeTableViewCell {
@IBOutlet weak var categoryNameLabel: UILabel!
override func awakeFromNib() {
super.awakeFromNib()
roundCorners([.topLeft, .bottomLeft], radius: self.bounds.height / 2)
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
}
extension UIView {
func roundCorners(_ 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
}
}
最佳答案
向uiview添加扩展名:
extension UIView {
func roundCorners(_ 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
}
}
现在您可以按照下面的示例对视图的任何角点进行圆角处理。
myView.roundCorners([.topLeft,.topRight,.bottomRight], radius: 10)
关于swift - 制作一个只四舍五入的UITableViewCell,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50676546/