Borde en círculo UIView usando Swift

Estoy intentando hacer una UIView con borde, pero solo aparece en UIView, no solo en el círculo.

muestra

En el círculo marrón, quiero un borde negro, pero tiene que estar en el círculo, no en la vista UIV.

Tengo una class llamada Ball donde dibujo el círculo.

class Ball: UIView { var desinetworkingColour = UIColor.blueColor() struct mine { static var p = UIBezierPath(ovalInRect: CGRectMake(0,0,118,117)) } override func drawRect(rect: CGRect) { // Drawing code desinetworkingColour.setFill() mine.p.fill() } func colour() { var randColor: UIColor = Colors.randomColor() Colors.ballColor = randColor Colors.colorPosition = find(Colors.arrayColors, randColor)! desinetworkingColour = randColor self.setNeedsDisplay() } } 

Utilicé el código:

 override func drawRect(rect: CGRect) { // Drawing code desinetworkingColour.setFill() let desinetworkingBorderColor = UIColor.blackColor() desinetworkingBorderColor.setStroke() self.layer.borderWidth = 3.0 self.layer.cornerRadius = self.frame.size.width/2.0 mine.p.fill() mine.p.stroke() } 

pero tengo un borde con pequeños cortes:

introduzca la descripción de la imagen aquí

Solutions Collecting From Web of "Borde en círculo UIView usando Swift"

 override func drawRect(rect: CGRect) { // Drawing code desinetworkingColour.setFill() let desinetworkingBorderColor = UIColor.blackColor() desinetworkingBorderColor.setStroke() mine.p.lineWidth = 2.0 //set to whatever you want mine.p.fill() mine.p.stroke() } 

Pero tenga en count que para que el borde funcione, necesita tener un espacio alnetworkingedor de su círculo.

Haz lo siguiente. Declare myBorderWidth (de tipo CGFloat ) propiedad y luego cambie

 static var p = UIBezierPath(ovalInRect: CGRectMake(0,0,118,117)) 

a

 static var p = UIBezierPath(ovalInRect: CGRectMake(myBorderWidth/2,myBorderWidth/2,118-myBorderWidth/2,117-myBorderWidth/2)) 

También puede eliminar las repeticiones de myBorderWidth/2 declarando que es una propiedad.

Intente llamar a esta function al pasarle ver como un parámetro

 func drawBlackBorder(view: UIView) { view.layer.borderColor = UIColor.blackColor view.layer.borderWidth = 1.0 view.layer.cornerRadius = view.frame.size.width/2.0 view.backgroundColor = UIColor.brownColor }