2016-03-23 7 views
5

मुझे नीचे दिए गए पाठ को काटने के लिए UILabel subclass में कोई समस्या है। पाठ को फिट करने के लिए लेबल उचित ऊंचाई का है, नीचे कुछ जगह शेष है, लेकिन पाठ अभी भी काटा जा रहा है।यूलाबेल सबक्लास - सही ऊंचाई होने के बावजूद पाठ में कट ऑफ

The label

लाल धारियों सीमा लेबल की परत में जोड़ा जा सकता है।

मैं किनारे के इन्सेट जोड़ने के लिए लेबल को उप-वर्गीकृत करता हूं।

override func sizeThatFits(size: CGSize) -> CGSize { 
    var size = super.sizeThatFits(size) 
    size.width += insets.left + insets.right 
    size.height += insets.top + insets.bottom 
    return size 
} 

override func drawTextInRect(rect: CGRect) { 
    super.drawTextInRect(UIEdgeInsetsInsetRect(rect, insets)) 
} 

हालांकि, इस विशेष मामले में इंससेट शून्य हैं।

+2

UILabel ऊंचाई बढ़ाने की कोशिश करें क्योंकि लेबल की ऊंचाई फ़ॉन्ट आकार से कम है या फ़ॉन्ट आकार कम है। –

+0

जैसा कि आप देख सकते हैं, टेक्स्ट की ऊंचाई लेबल की ऊंचाई से कम है। इसके अलावा, अगर मैं इस सबक्लास के बजाय नियमित लेबल का उपयोग करता हूं, तो पाठ काटा नहीं जाता है। –

+0

@mag_zbc आप किस कस्टम फ़ॉन्ट का उपयोग कर रहे हैं। –

उत्तर

7

बाहर कर देता है समस्या

self.lineBreakMode = .ByCharWrapping 

समस्या

1

जब एक ही समय में लेबल के लिए topAnchor और centerYAnchor उपलब्ध कराने के मेरे लिए हुआ हल करने के लिए

self.lineBreakMode = .ByClipping 

इसे बदलने के साथ किया गया था। केवल एक एंकर छोड़ने से समस्या ठीक हो गई।

0

अन्य उत्तर मेरी मदद नहीं था, लेकिन क्या किया लेबल जो कुछ ऊंचाई तक यह, की जरूरत है ताकि तरह की ऊंचाई को बाधित किया गया था:

let unconstrainedSize = CGSize(width: CGFloat.greatestFiniteMagnitude, height: CGFloat.greatestFiniteMagnitude) 
label.heightAnchor.constraint(equalToConstant: label.sizeThatFits(unconstrainedSize).height).isActive = true 

इसके अलावा, sizeThatFits(_:) एक 0 by 0 आकार वापस आ जाएगी यदि आपके लेबल के text क्षेत्र nil या ""

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