2013-10-18 75 views
5

我想要做一些像這樣的事情, option image如何在UILabel中畫圓?

如何畫中的UILabel一個圓,類似於這樣的形象,我只是想避免使用圖片代替。

+9

使用Unicode字符的盤旋A - Ⓐ – rmaddy

+1

究竟想要做T?詳細說明你的魔杖是否有符號,或者想要其他所有的字符都被圈起來然後等等? – amar

回答

11

我建議添加的形狀層到的UILabel。事情是這樣的:

// Create the shape layer 

CAShapeLayer *circleLayer = [CAShapeLayer layer]; 
circleLayer.path = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(0, 0, 50, 50)].CGPath; 
circleLayer.fillColor = [UIColor clearColor].CGColor; 
circleLayer.strokeColor = [UIColor whiteColor].CGColor; 
circleLayer.lineWidth = 1; 

// Add it do your label's layer hierarchy 

[label.layer addSublayer:circleLayer]; 

這會給你在其外觀最大的控制,而且字體爲A的

UPDATE:

,你會這只是發生在我身上爭取讓「A」在垂直方向上偏移以圍繞它。在UILabel中有黑客垂直居中,但是使用UITextField會更好,因爲它支持contentVerticalAlignment屬性。您只需將其userInteractionEnabled設置爲NO即可防止用戶在其上鍵入文本!

除此之外,加入CAShapeLayer的原理是一樣的。

+0

此代碼不能編譯。前3行全部不正確:將UIBezierPath分配給CAShapeLayer並將UIColors分配給CGColorRefs。 – Echelon

+1

我修復了錯誤。 – Echelon

5

您可以通過@maddy建議的方式或實現這一目標,同方矩形創建UILabel,將文本對齊,中間和使用標籤的層的cornerRadiusborderWidth。只需將cornerRadius設置爲標籤的半寬(或高度)即可。祝你好運!