2016-06-28 4 views

답변

0

사용이 스위프트 :

let maskPath: UIBezierPath = UIBezierPath(roundedRect: self.textField.bounds, byRoundingCorners: ([.TopLeft, .TopRight]), cornerRadii: CGSizeMake(10.0, 10.0)) 
    let maskLayer: CAShapeLayer = CAShapeLayer() 
    maskLayer.frame = self.textField.bounds 
    maskLayer.path = maskPath.CGPath 
    self.textField.layer.mask = maskLayer 
    let borderLayer: CAShapeLayer = CAShapeLayer() 
    borderLayer.frame = self.textField.bounds 
    borderLayer.path = maskPath.CGPath 
    borderLayer.lineWidth = 4.0 
    borderLayer.strokeColor = UIColor.blackColor().CGColor 
    borderLayer.fillColor = UIColor.clearColor().CGColor 
    self.textField.layer.addSublayer(borderLayer) 

의 Obj-C

UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:self.textField.bounds byRoundingCorners:(UIRectCornerTopLeft | UIRectCornerTopRight) cornerRadii:CGSizeMake(10.0, 10.0)]; 

CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init]; 
maskLayer.frame = self.textField.bounds; 
maskLayer.path = maskPath.CGPath; 
self.textField.layer.mask = maskLayer; 

CAShapeLayer *borderLayer = [[CAShapeLayer alloc] init]; 
borderLayer.frame = self.textField.bounds; 
borderLayer.path = maskPath.CGPath; 
borderLayer.lineWidth = 4.0f; 
borderLayer.strokeColor = [UIColor blackColor].CGColor; 
borderLayer.fillColor = [UIColor clearColor].CGColor; 
+0

Oww, 매우 대단히 감사합니다 :) 마지막 질문 하나, 어떻게 왼쪽의 색깔을 바꿀 수 있습니까 –

+0

첫 번째 내 대답을 수락합니다. 내가 확인하고 당신에게 업데이 트 – Ammaiappan

+0

오, 기다리고 있어요 –

2
let path = UIBezierPath(roundedRect: yourtextField.bounds, byRoundingCorners: [.TopRight, .TopLeft], cornerRadii : CGSizeMake(15.0, 15.0)) 

     let templayer = CAShapeLayer() 
     templayer.path = path.CGPath 
     yourtextField.layer.mask = maskLayer 

이렇게하면됩니다.

+0

감사합니다,하지만 결과 : http://image.prntscr.com/image/0a9e80bb00524eeaa3305b40caef0f08.png 코너 투명 –

+0

@semihh는 yourtextField.clipsToBounds = true를 사용하려고합니다. 불행히도 그것은 발생하지 않았습니다. –

+0

여전히 동일 –

관련 문제