我在斯威夫特有问题。我正在尝试制作一个只在一端圆形的TableViewCell。我知道如何用cornerRadius创建圆形的tableViewCell,但我希望效果只应用于tableViewCell的开头,而结尾是标准的。
swift - 制作一个只四舍五入的UITableViewCell-LMLPHP
现在,使用下面的代码扩展,我得到了这个:
swift - 制作一个只四舍五入的UITableViewCell-LMLPHP

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/

10-11 19:27