Как установить угловой радиус для верхнего левого и верхнего правого UIView на табличной пользовательской ячейке? - PullRequest
0 голосов
/ 12 октября 2018

ViewController.swift

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "mycell") as! CustomTableViewCell

    cell.backgroundColor = UIColor.clear

    cell.nameLbl.text = "\(adminNmaes[indexPath.row])"
    cell.aboutLbl.text = "\(aboutarray[indexPath.row])"
    if indexPath.row == 0
    {
        cell.view1.roundCorners(corners: [.topLeft,.topRight], radius: 10)
       // tableView.reloadData()
    }

    return cell
}

extension UIView {
func roundCorners(corners: UIRectCorner, radius: CGFloat) {
    let path = UIBezierPath(roundedRect: bounds, byRoundingCorners: corners, cornerRadii: CGSize(width: radius, height: radius))
    let mask = CAShapeLayer()
    mask.path = path.cgPath
    layer.mask = mask
    }
}

Я настроил пользовательский класс ячеек, используя автоматическое расположение, и использовал расширение для применения углового излучения только для 1-й ячейки.Я также хочу указать угловой радиус для нижнего левого и нижнего правого нижнего колонтитула, а также дать ему отступ 10. Любая помощь приветствуется. Спасибо заранее.

1 Ответ

0 голосов
/ 12 октября 2018

enter image description here Начиная с iOS11, CALayer имеет свойство maskedCorners:

var maskedCorners: CACornerMask { get set }

В вашем случае вы должны использовать:

cell.contentView.layer.maskedCorners = [.layerMinXMinYCorner, .layerMinXMinYCorner]

Это маскирует верхний левый и правый углы для любого установленного вами углаRadius.

Также необходимо убедиться, что contentView обрезает свои подпредставления, чтобы они могли соответствоватьформа

cell.contentView.clipsToBounds = true

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...