2015-06-25 76 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

不客氣! –