ios - 在swift下如何给tableview Grouped切指定圆角呢?
阿神
阿神 2017-04-17 17:35:25
0
3
463

项目要求是这样的

请问用swift如何作出这样的效果呢?
图示中的结构是一个section有2个row
所以是row1 切左上右上两个圆角, row2 切左下,右下2个圆角。

阿神
阿神

闭关修行中......

membalas semua(3)
阿神

Masalah telah selesai, kodnya adalah seperti berikut, saya harap ia berguna untuk semua

  override func drawRect(rect: CGRect) {
        //切左上右上圆角
        let maskPath = UIBezierPath(roundedRect:self.bounds, byRoundingCorners: [.TopLeft,.TopRight], cornerRadii: CGSizeMake(5.0, 5.0))
        let maskLayer = CAShapeLayer()
        maskLayer.frame = self.bounds
        maskLayer.path = maskPath.CGPath
        self.layer.mask = maskLayer
        
        //添加border
        let borderLayer = CAShapeLayer()
        borderLayer.frame = self.bounds
        borderLayer.path = maskPath.CGPath
        borderLayer.lineWidth = 0.5
        borderLayer.strokeColor = UIColor.lightGrayColor().CGColor
        borderLayer.fillColor = UIColor.clearColor().CGColor
        
        let layers:NSArray = self.layer.sublayers! as NSArray
        
        if ((layers.lastObject!.isKindOfClass(CAShapeLayer))) {
            layers.lastObject?.removeFromSuperlayer()
        }
        self.layer.addSublayer(borderLayer)
        
    }
  override func drawRect(rect: CGRect) {
        //切左下右下圆角
        let maskPath = UIBezierPath(roundedRect:self.bounds, byRoundingCorners:[.BottomLeft,.BottomRight], cornerRadii: CGSizeMake(5.0, 5.0))
        let maskLayer = CAShapeLayer()
        maskLayer.frame = self.bounds
        maskLayer.path = maskPath.CGPath
        self.layer.mask = maskLayer
        
        
        //添加border
        let borderLayer = CAShapeLayer()
        borderLayer.frame = self.bounds
        borderLayer.path = maskPath.CGPath
        borderLayer.lineWidth = 0.5
        borderLayer.strokeColor = UIColor.lightGrayColor().CGColor
        borderLayer.fillColor = UIColor.clearColor().CGColor
        
        let layers:NSArray = self.layer.sublayers! as NSArray
        
        if ((layers.lastObject!.isKindOfClass(CAShapeLayer))) {
            layers.lastObject?.removeFromSuperlayer()
        }
        self.layer.addSublayer(borderLayer)

    }
洪涛

Saya rasa adalah lebih baik jika anda menganggap dua suapan dalam gambar sebagai dua TableViewCells tersuai Dengan cara ini, sudut bulat yang anda rujuk sebenarnya meletakkan sudut bulat putih pada setiap Sel.

迷茫

Setelah membaca jawapan di tingkat satu, saya merasakan ia sememangnya penyelesaian kepada masalah tersebut.

Tetapi saya ada soalan di sini

Niat reka bentuk asal Zhihu adalah seperti ini

Klik di bahagian atas atau bahagian bawah akan masuk ke halaman yang berbeza, bermakna pemantauan yang berbeza diperlukan Tetapi jika anda mengikuti penyelesaian rakan di tingkat atas, bagaimana untuk menyelesaikan situasi ini

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan