2013-08-30 6 views
11

मेरे पास 2 UILabellabelA और labelB और 320 पीएक्स की चौड़ाई है। मैं बाधाओंऑटोलायआउट प्रतिबंध प्राथमिकता

H:|-[labelA]-(>=4)-[labelB]-|

दुर्भाग्य से, labelA और labelB बनाई गई कुछ समय बड़ा हो सकता है और काट-छांट के बिना फिट नहीं होता। मैं यह सुनिश्चित करना चाहता हूं कि कोई फर्क नहीं पड़ता कि labelB छोटा नहीं होगा। (labelB 160 पीएक्स से अधिक नहीं होगा)। हालांकि, मैं जितना संभव हो सके लेबल ए के लिए उपलब्ध स्थान का उपयोग करना चाहूंगा ताकि लेबल बी को फिक्सिंग केवल अंतरिक्ष की बर्बादी हो।

प्रश्न: मैं प्राथमिकता कैसे रखूं कि labelB हमेशा अपने आंतरिक आकार को बनाए रखता है? जहां labelA को छोटा कर दिया जा सकता है।

उत्तर

17

आप लेबल बी पर उच्च करने के लिए सामग्री संपीड़न प्रतिरोध सेट:

[labelB setContentCompressionResistancePriority: UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal]; 

इसका मतलब है कि बी नहीं की कोशिश करेंगे पाठ द्वारा दिए गए आंतरिक आकार के नीचे संकुचित करने की। इसे जितना संभव हो उतना छोटा बनाने के लिए, आप contentHuggingPriority सेट भी कर सकते हैं - इससे टेक्स्ट के आकार से मिलान करने का प्रयास किया जाएगा।

+0

बहुत बढ़िया जवाब, एक आकर्षण की तरह काम करता है! ContentHugging शायद ऊर्ध्वाधर में सबसे अच्छा उपयोग किया जाता है, क्योंकि लेबल क्षैतिज सुंदर कुएं पर पाठ को गले लगाता है। यह वास्तव में एक चिंता नहीं है लेकिन इसे इंगित करने के लिए +1! – Byte

+1

हॉगिंग कई लेबलों के साथ-साथ मदद करता है, मुझे लगता है। – jrturton

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