2016-09-02 5 views
1

ich eine Collection machen haben, die Zellen von links und rechts abgerundet sind, ist es mit dem Code untenWie färbe ich den oberen Rand der gerundeten Zelle?

let maskPath = UIBezierPath(roundedRect: self.bounds, 
           byRoundingCorners: corners, 
           cornerRadii: CGSize(width: 10.0, height: 10.0)) 
    let maskLayer = CAShapeLayer() 
    maskLayer.frame = self.bounds 
    maskLayer.path = maskPath.CGPath 
    self.layer.mask = maskLayer 
    self.layer.masksToBounds = true 

aber noch eine Sache in Ordnung, ich will Grenze Farbe oben auf jeder Zelle geben,

enter image description here

Irgendeine Idee?

Danke.

+1

Randfarbe? Sie können UIBezierPath verwenden, um eine entsprechende Linie zu zeichnen? – Larme

+0

Ich habe versucht, eine Linie zu ziehen, ist ok, Problem ist gerundet Teil. – user2628268

+1

Der Eckenradius ist nur ein "Viertelkreis". UIBezierPath verfügt über eine Methode zum Zeichnen von Kreisabschnitten. Es ist nicht kompliziert. Sie gehen von 0,10, zeichnen einen Kreis von Mitte 10,10 mit 10 als Radius, dann zeichnen Sie eine Linie von 10,0 bis Breite-10,0, zeichnen Sie einen Kreis von der Mitte Breite-10,10 mit 10 als Radius. – Larme

Antwort

-1

hinzufügen CALayer als Unterschicht der Zelle

CALayer *borderLayer = [CALayer layer]; 

    borderLayer.borderColor = [UIColor greenColor].CGColor; 

    borderLayer.borderWidth = 3.0f; 

    borderLayer.frame = CGRectMake(0, 0, cell.frame.size.width, 1); 

    [cell.layer addSublayer:borderLayer]; 
0

Einige Unterschiede, so:

let view = UIView(frame: CGRect(x: 100, y: 100, width: 100, height: 100)) 

let shapeOfView = CAShapeLayer() 
shapeOfView.position = view.center 
shapeOfView.bounds = view.frame 
shapeOfView.path = UIBezierPath(roundedRect: view.bounds, byRoundingCorners: [.topLeft, .topRight], cornerRadii: CGSize(width: 10.0, height: 10)).cgPath   

view.layer.backgroundColor = UIColor.red.cgColor 
view.layer.mask = shapeOfView 
+0

Ich habe Swift 3-Code geschrieben, daher müssen Sie möglicherweise einige Anweisungen korrigieren. – pedrouan

+0

Linie ist in Ordnung, aber es sollte runden Teil enthalten. – user2628268

+0

Oh, ist es nicht. Ich werde untersuchen, wie ich helfen könnte. – pedrouan

0

Sie tun können,

var border = CALayer() 
    border.frame = CGRectMake(0, 0, CGRectGetWidth(self.view.frame), 1) //set width and heigt (thickness of your border) 
    border.backgroundColor = color.CGColor; //desired color 
    yourCell.layer.addSublayer(border) 
+0

Ich habe ein Problem mit abgerundeten Teil, Linie ist in Ordnung. – user2628268

Verwandte Themen