2014-07-17 5 views
9

मैं UISplitViewController में अपने विस्तार दृश्य के लिए ऑटोलायआउट के साथ एक समस्या में भाग रहा हूं। मेरे दृश्य पदानुक्रम में एक सजावटी तत्व के साथ UIImageView है, और छवि दृश्य का आंतरिक आकार शेष नियंत्रणों के लेआउट को खराब कर रहा है।मैं UIImageView के आंतरिक आकार को ओवरराइड करने के लिए ऑटोलाउट कैसे प्राप्त कर सकता हूं?

इन बाधाओं मैं छवि को देखने के लिए निर्दिष्ट किया है कर रहे हैं:

H:[UIImageView:0xc83ba90]-(NSSpace(20))-| 
H:|-(NSSpace(20))-[UIImageView:0xc83ba90] 
UIImageView:0xc83ba90.bottom == UITextField:0xc83d2d0.bottom 
V:[UIImageView:0xc83ba90 (3)]>, 
H:[UIImageView:0xc83ba90 (532)] Hug:1 CompressionResistance:750 
V:[UIImageView:0xc83ba90 (2)] Hug:250 CompressionResistance:750 

व्यवहार मैं चाहता हूँ के लिए छवि देखने के लिए, के रूप में शीर्ष दो बाधाओं द्वारा वर्णित अपने superview को भरने के लिए आकार दिया जा रहा है। वास्तविक व्यवहार जो मैं देख रहा हूं वह यह है कि छवि दृश्य केवल अपने आंतरिक आकार की बाधा से वर्णित क्षैतिज स्थान लेता है। यह अपने सभी भाई विचारों के लेआउट को बदलने में भी प्रतीत होता है, हालांकि पर्यवेक्षण केवल छवि दृश्य के रूप में चौड़े आयत में विचारों को बिछा रहा था।

मैंने सोचा था कि जितना संभव हो सके छवि दृश्य की गड़बड़ी प्राथमिकता निर्दिष्ट करना अन्य बाधाओं को छवि दृश्य का आकार बदलने के लिए ओवरराइड करने देगा। मुझसे यहां क्या गलत हो रहा है?

+2

[ 'UIImageView' डिफ़ॉल्ट रूप से एक आंतरिक सामग्री आकार को परिभाषित नहीं करता] (https://stackoverflow.com/questions/14528172/uiview-and-intrinsiccontentsize)। क्या आप लेआउट देखने के लिए आईबी की तस्वीर पोस्ट कर सकते हैं? टेक्स्ट के साथ आप क्या करना चाहते हैं इसका एक अनुमान प्राप्त करना मुश्किल है। –

+1

इंटरफेस बिल्डर का क्या हिस्सा है? इसमें बहुत सारे नियंत्रण शामिल हैं। ऐसा लगता है कि UIImageView अपनी छवि के आकार को इसके आंतरिक आकार के रूप में ले रहा है। – Greg

+2

एक ही समस्या के साथ समस्याएं हैं। कहें कि एक छवि 300x100 है। मैं इसे एक आईपैड और आईफोन पर ** अनुपात ** अनुपात रखना चाहता हूं। हालांकि, इसका मूल आकार किसी गतिशील बाधा को ओवरराइड करता है। तो या तो आईपैड पर बहुत छोटा दिखता है या आईफोन पर बहुत बड़ा लगता है। – bauerMusic

उत्तर

3

तो, मुझे अंततः एक समाधान मिला।

समाधान के लिए उच्च (750 या अधिक) SuperView के गले प्राथमिकता बढ़ाने के लिए और कम (250 या उससे कम) के लिए UIImageView के संपीड़न प्रतिरोध प्राथमिकता कम करने के लिए है। यह छवि अंतर्निहित आकार को बाधित करने देगा।

Content Hugging Priority - The higher this priority is, the more a view resists growing larger than its intrinsic content size. 
Content Compression Resistance Priority - The higher this priority is, the more a view resists shrinking smaller than its intrinsic content size. 
+1

अच्छा एक, मेरी समस्या तय की। – Paludis

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

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