2015-06-25 4 views
0

У меня есть кнопка, на которой я показываю изображение. Изображение (изображение в круге как png с прозрачным цветом вне круга) находится в круге, а кнопка прозрачна. Когда я нажимаю кнопку на экране, я вижу только отмеченную кнопку. Это прекрасно работает.Изображение на кнопке с рисунком круга

Теперь я хотел бы нарисовать черный круг вокруг изображения во время выполнения. Любые подсказки о том, как это сделать?

моя функция создания кнопки:

func draw_button(sImage:String,X:CGFloat,Y:CGFloat, iTag:Int){ 

     // Back Button 
     var sImagename=sImage; 
     var fButtonx:CGFloat=X; 
     var fButtony:CGFloat=Y; 

     var thebutton=UIButton(frame: CGRectMake(fButtonx, fButtony, iButtonSize, iButtonSize)); 
     thebutton.addTarget(self, action: "buttonActionBotton:", forControlEvents: UIControlEvents.TouchUpInside) 
     thebutton.tag = iTag; 
     var image = UIImage(named: sImagename); 


     thebutton.setImage(image, forState: .Normal) 
     var transparent:UIColor=UIColor(red: 0, green: 0, blue: 0, alpha: 0.0); 
     thebutton.backgroundColor=transparent; 
     thebutton.layer.backgroundColor=transparent.CGColor; 
     self.view.addSubview(backButton); 


    } 

Любые намеки о том, как я могу это сделать?

ответ

0

Вы можете использовать подпункт, расположенный под кнопкой. Установите свой фон в черный цвет и используйте его свойство cornerRadius слоя, чтобы получить форму круга.

let circleSubview = UIView(frame: CGRectMake(fButtonx, fButtony, iButtonSize, iButtonSize); 
circleSubview.backgroundColor = UIColor.blackColor(); 
circleSubview.layer.cornerRadius = //whatever you need; I believe, it should be something around 10.0 or more - try it yourself 


//after backButton added to view hierarchy 
self.view.insertSubview(view: circleSubview, belowSubview : backButton) 

Некоторые советы - вам не нужны ваши представления, чтобы быть переменными. Используйте let вместо var. И у вас есть функция класса UIColor.clearColor() вместо того, чтобы создавать прозрачный цвет самостоятельно.

+0

Отличный ответ. Так легко. А также благодарю вас за хороший совет относительно очистки цвета. –

+0

Добро пожаловать! –

Смежные вопросы