2013-10-18 6 views
5

मैं इस तरह कुछ बात करना चाहते हैं, option imageUILabel में एक सर्कल कैसे आकर्षित करें?

कैसे UILabel में एक चक्र है जो इस छवि के समान दिखता है आकर्षित करने के लिए, मैं सिर्फ बजाय छवि का उपयोग कर से बचने के लिए चाहते हैं।

+9

सर्किल ए - Ⓐ – rmaddy

+1

के लिए यूनिकोड वर्ण का उपयोग करें आप वास्तव में क्या करना चाहते हैं? एक लिटल जिसे आप एक प्रतीक के लिए wand विस्तृत करना चाहते हैं या चाहते हैं कि हर दूसरे चार अब घूमते हैं और फिर आदि? – 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]; 

है कि आप अपनी उपस्थिति से अधिक बड़ी नियंत्रण और ए के लिए फ़ॉन्ट के उस दे देंगे

अद्यतन:

यह सिर्फ मेरे लिए हुआ है आप हूँ कि इसके चारों ओर एक चक्र डालने के लिए "ए" लंबवत ऑफसेट प्राप्त करने के लिए संघर्ष। UILabel में ऊर्ध्वाधर केंद्र प्राप्त करने के लिए हैक हैं, लेकिन इसके बजाय आप UITextField का उपयोग करना बंद कर देंगे, क्योंकि यह सामग्री वर्टिकल एलाइनमेंट प्रॉपर्टी का समर्थन करता है। उपयोगकर्ता को टेक्स्ट टाइप करने से रोकने के लिए आपको बस अपना उपयोगकर्ता इंटरैक्शन सक्षम करने की आवश्यकता है!

इसके अलावा, CAShapeLayer जोड़ने का सिद्धांत समान है।

+0

यह कोड संकलित नहीं करता है। पहली 3 पंक्तियां सभी गलत हैं: एक CAShapeLayer को UIBezierPath असाइन करना और CGColorRefs को UIColors असाइन करना। – Echelon

+1

मैंने त्रुटियों को ठीक किया। – Echelon

5

आप या जिस तरह से @maddy सुझाव दिया द्वारा इस लक्ष्य को हासिल कर सकते हैं, वर्ग रेक्ट साथ UILabel बनाने के लिए, करने के लिए पाठ संरेखण डाल मध्यम और उपयोग लेबल की परत की cornerRadiusborderWidth साथ। बस लेबल की आधा चौड़ाई (या ऊंचाई) तक cornerRadius सेट करें। शुभ लाभ!

संबंधित मुद्दे