代码之家  ›  专栏  ›  技术社区  ›  Hemang

如何使用Swift中的CG类创建以下附加UI?

  •  2
  • Hemang  · 技术社区  · 6 年前

    如何创建这种UI?

    enter image description here

    到目前为止,我最终创建了如下相同的UI .

    enter image description here

    我不确定,如何在上面的参考中弯曲黄色边框。

    2 回复  |  直到 6 年前
        1
  •  3
  •   Reinier Melian    6 年前

    只需添加边框布局和遮罩,您就可以实现所需的功能

    完整示例(仅相关代码)

    import UIKit
    
    class ViewController: UIViewController {
        @IBOutlet weak var tableView: UITableView!
        var selectedIndex : Int = -1
    
        override func viewDidLoad() {
            super.viewDidLoad()
            // Do any additional setup after loading the view, typically from a nib.
    
            self.tableView.layer.borderColor = UIColor.red.cgColor
            self.tableView.layer.borderWidth = 3
        }
    
        func bezierPathWithShape(rect:CGRect,cornerRadius:CGFloat) ->UIBezierPath
        {
            let path = UIBezierPath(roundedRect: rect, byRoundingCorners: .allCorners, cornerRadii: CGSize(width: cornerRadius, height: cornerRadius))
            return path
        }
    
    
        override func viewDidLayoutSubviews() {
            super.viewDidLayoutSubviews()
            let mask = CAShapeLayer(layer: self)
            mask.path = self.bezierPathWithShape(rect: self.tableView.bounds, cornerRadius: 15).cgPath
            self.tableView.layer.mask = mask
            self.tableView.layer.masksToBounds = true
        }
    
    }
    

    后果

    enter image description here

        2
  •  0
  •   Naresh aggregate1166877    6 年前

    这里有另一种方法。

    在tableView和lines中使用superView视图。

    添加cornerRadius,然后设置 clipToBounds = true 对于superView。

    它将根据转弯半径来夹线。