2012-12-06 45 views
10

मैंने अभी एक यूआईएलएबल componet को एक दृश्य में जोड़ा है और मैं इसे एक गोल कोने UILabel बनाने की कोशिश कर रहा हूं। मैं एक ही मुद्दे से संबंधित कुछ प्रश्न और उत्तर पढ़ रहा हूं लेकिन उनमें से सभी कहते हैं कि मुझे स्रोत कोड बदलना है। क्या यह वास्तव में नए एक्सकोड 4.5 और आईओएस 6 में जरूरी है? इसके अलावा मुझे यकीन नहीं है कि क्या मैं मुख्यस्टोरीबोर्ड द्वारा उत्पन्न कोड देख पा रहा हूं।गोलाकार कोने (एक्सकोड 4.5 और आईओएस 6) के साथ UILabel

किसी भी मदद की सराहना की जाएगी।

#import <QuartzCore/QuartzCore.h> 

तो आप अपने UILabel का संदर्भ लेना चाहिए

yourLabel.layer.cornerRadius = 5; 

5 सिर्फ एक उदाहरण है,:

बहुत धन्यवाद, मार्कोस

+0

कृपया स्वीकार मेरी या इस्माइल का जवाब अगर वे आप में मदद की।मैं अपनी प्रतिष्ठा और इस्माइल भी प्राप्त करना चाहता हूं, मुझे यकीन है कि –

उत्तर

11

UILabel गोलाकार कोनों के साथ निम्न करना बेशक

+0

बहुत धन्यवाद। सिर्फ एक आखिरी सवाल: क्या इस कोड को जोड़ने के लिए कोई विशिष्ट जगह है? मुझे यकीन नहीं है कि क्या मेरे पास एक्सकोड इंटरफेस बिल्डर द्वारा उत्पन्न कोड तक पहुंच है। क्या नियंत्रक पर कोई विशेष विधि है जहां यह कोड जोड़ा जाना चाहिए? – vilelam

+0

ठीक है, आपके पास आईबी में बनाए गए एक आउटलेट वैरिएबल UILabel * से जुड़ा होना चाहिए। और आप जहां भी चाहें इस चर के लिए कोने त्रिज्या सेट करते हैं। viewDidLoad या viewWillAppear को ठीक काम करना चाहिए –

1

आपको #import "QuartzCore/QuartzCore.h" की आवश्यकता है और कहीं न कहीं अपने कोड पर

label.layer.cornerRadius = 2.0; // or whatever radius you want 
+0

बहुत धन्यवाद। सिर्फ एक आखिरी सवाल: क्या इस कोड को जोड़ने के लिए कोई विशिष्ट जगह है? मुझे यकीन नहीं है कि क्या मेरे पास एक्सकोड इंटरफेस बिल्डर द्वारा उत्पन्न कोड तक पहुंच है। क्या नियंत्रक पर कोई विशेष विधि है जहां यह कोड जोड़ा जाना चाहिए? – vilelam

+0

यह इस बात पर निर्भर करता है कि आपका सेल कहां है। आपको अपने नियंत्रक पर इसका संदर्भ होना चाहिए, और यदि यह इंटरफ़ेस बिल्डर द्वारा बनाया गया है, तो आपको इसे अपने 'viewDidLoad' विधि – Ismael

+0

पर जोड़ना चाहिए बहुत अच्छा! मैं ऐसा करने में सक्षम था। मैंने कोड को DidLoad विधि में जोड़ा और यह आसानी से काम कर रहा है। – vilelam

-1

हाँ, यह केवल जोड़ने कोड के माध्यम से किया जा सकता है, यहाँ अन्य लोगों ने उल्लेख किया है। दुर्भाग्य से इंटरफेस बिल्डर अब यह नहीं कर सकता है।

+0

@PradeepReddyKypa एक्सकोड 4.5 में? –

12

आप इंटरफ़ेस बिल्डर में यह सब कर सकते हैं।
एक्सकोड में, इंटरफ़ेस बिल्डर खोलने के लिए अपनी .xib फ़ाइल (या स्टोरीबोर्ड) का चयन करें। अपने UILabel पर क्लिक करें और पहचान निरीक्षक खोलने (यदि आप नहीं जानते कि वह कहाँ है, XCode के मदद मेनू पर जाएं और "पहचान निरीक्षक" में टाइप)। उपयोगकर्ता निर्धारित क्रम के तहत प्लस बटन गुण फलक क्लिक करें, और कुंजी पथ के लिए layer.cornerRadius लिखते हैं, प्रकार के लिए Number, और 5 (या किसी अन्य संख्या) मूल्य के लिए चुना है।
यदि आप अब अपनी परियोजना चलाते हैं तो आपको एक गोल-कोने वाला UILabel प्राप्त करना चाहिए।

+2

यह केवल तभी काम करता है जब "क्लिप सबव्यूव्स" चेक किया गया है (मैं एक्सकोड 6 पर हूं) – mnl

1

आप 'पहचान निरीक्षक' के तहत 'उपयोगकर्ता परिभाषित रनटाइम विशेषताओं' में कुंजियों में से एक के रूप में layer.cornerRadius जोड़कर इंटरफ़ेस बिल्डर में ऐसा कर सकते हैं।

1

अपनी परियोजना के लिए quartzcore ढांचे जोड़े चौखटे निम्नलिखित कोड

import "QuartzCore/QuartzCore.h" 

उपयोग -

label.layer.cornerRadius = 2.0; // radius depend on how much rounded corner you want. 
label.clipsToBounds = TRUE; 
0

मैंने सोचा कि मैं नए विकास के वातावरण के लिए यह करने के लिए (स्विफ्ट) के साथ एक से थोड़ा बेहतर तरीका साझा करेंगे । निम्नलिखित कोड के साथ, आपको इंटरफ़ेस बिल्डर में एक विशेष फ़ील्ड दिखाई देता है जो आपको कोने त्रिज्या सेट करने देता है। एक नई उपधारा गुण निरीक्षक "देखें" कहा जाता है में दिखाई दे, एक आइटम "कॉर्नर रेडियस" कहा जाता है में वहाँ

#if !os(watchOS) 
    // watchOS UI designer allows setting of a corner radius. For 
    // iOS and tvOS, an Interface Builder extension is needed. 
    extension UIView { 
     @IBInspectable var cornerRadius: CGFloat { 
      get { 
       return layer.cornerRadius 
      } 
      set { 
       layer.cornerRadius = newValue 
       layer.masksToBounds = newValue > 0 
      } 
     } 
    } 
#endif