2014-10-12 9 views
5

से टेक्स्ट इन्सेट करें मेरे पास एक UILabel है जिसका उपयोग मैं टेक्स्ट की कई पंक्तियों को प्रदर्शित करने के लिए कर रहा हूं। फिलहाल जब टेक्स्ट प्रदर्शित होता है, तो यह लेबल के बाएं हाथ के ठीक ऊपर होता है जो बहुत अच्छा नहीं दिखता है। मैं पाठ को बाएं से थोड़ा सा इन्सेट करना चाहता हूं।UILabel में

यह मेरा कोड अब तक है:

 if notes.objectAtIndex(indexPath.row) as NSString == "" { 
      cell.notesLabel.text = "No notes to display." 
      cell.notesLabel.textAlignment = NSTextAlignment.Center 
     } else { 
      cell.notesLabel.textAlignment = NSTextAlignment.Left 
     } 

मैं कुछ ऑब्जेक्टिव-सी उदाहरण देख रहा था लेकिन मैं उन्हें काम करने के लिए नहीं मिल सका और मैं वास्तव में नहीं लगता कि वे थे मैं के लिए क्या देख रहा था ।

इसके अलावा, मैं एक ही चीज़ को एक अलग लेबल के साथ करने की कोशिश कर रहा था और उस स्थिति में मुझे लगता है कि मैं स्ट्रिंग के अंत में "" जोड़ सकता था (क्योंकि यह एक सिंगल लाइन लेबल है) इसे स्थानांतरित करने के लिए दाईं तरफ से, लेकिन मुझे आश्चर्य हुआ कि यह काम नहीं करता है?

धन्यवाद।

उत्तर

11

बाएं किनारे से पाठ इनसेट लिए, आप एक UILabel उपवर्ग बनाना चाहिए, और drawTextInRect ओवरराइड :,

class RDLabel: UILabel { 

    override func drawTextInRect(rect: CGRect) { 
     let newRect = CGRectOffset(rect, 10, 0) // move text 10 points to the right 
     super.drawTextInRect(newRect) 
    } 
} 
+0

क्षमा करें, क्या मैं वास्तव में पाठ फ़ील्ड को यह लागू करने के लिए क्या करने की जरूरत है? मैंने इस बिंदु तक कक्षाओं के साथ मुश्किल से काम किया है। – user3746428

+0

@ user3746428, आप मेरे ऊपर दिए गए कोड के साथ एक नई कक्षा बनाते हैं, फिर आईबी में आपके लेबल की कक्षा को अपनी कस्टम कक्षा में बदल दें (मेरे उदाहरण में RDLabel)। – rdelmar

+0

बढ़िया! बहुत बहुत धन्यवाद। – user3746428