2013-02-13 16 views
5

मैं ऑटो लेआउट बंद और आईफोन 5 के लिए डिफ़ॉल्ट सेटिंग के साथ एक ऐप विकसित कर रहा हूं। अब मेरे पास स्क्रीन के निचले हिस्से में एक यूआईवीव है, जब मैं आईबी में आकार विकल्पों के बीच स्विच करता हूं तो यूआईवी व्यू ठीक से स्वयं को ठीक करने के लिए आगे बढ़ता है स्क्रीन के नीचे। जब भी मैं अपने आईफोन 4 या सिम्युलेटर पर परीक्षण करता हूं, यह आगे बढ़ता नहीं है, इसके बजाय यह कटऑफ हो जाता है।मैं स्क्रीन के नीचे UIView को कैसे ठीक कर सकता हूं?

मैं इसे कैसे बना सकता हूं ताकि ऐप के निचले हिस्से में UIView छोटे आईफोन 4 के लिए ऊपर की ओर हो जाए?

निम्न उदाहरण देखें

मैं मूल रूप से चाहते हैं सफेद बॉक्स ग्रे बॉक्स के नीचे खाई को भरने के लिए ऊपर की ओर घुमाया जा सकता है।

अद्यतन

दृश्य पदानुक्रम के संदर्भ में, वहाँ एक युक्त दृश्य है और फिर सफेद अनुभाग है कि आप देख एक सरल UIView (सफेद पृष्ठभूमि) एक स्क्रॉल दृश्य के अंदर के साथ है। परियोजना काफी नई है इसलिए सेटअप बहुत आसान है और यूआईवी व्यू को किसी भी स्थिति में रखने के लिए कोई कोड नहीं है।

+0

आप autolayout का उपयोग कर रहे हैं? या AutoresizingMask? – Jaybit

+0

मैंने ऑटोलाइट बंद कर दिया, मैं ऑटोसाइजिंग फीचर – ORStudios

+0

@ आइकॉनिक डिजीटल का उपयोग कर रहा हूं, आपकी 4-इंच और 3.5-इंच छवियां इस तरह की तुलना नहीं कर रही हैं ... मेरे अपडेट किए गए उत्तर को देखें – foundry

उत्तर

7

वाई समन्वय प्राप्त करने के लिए, स्क्रीन की ऊंचाई प्राप्त करें, मुख्य दृश्य (जैसे स्टेटस बार) के ऊपर किसी भी UI तत्व घटाएं और UIView की ऊंचाई घटाएं जो आप रख रहे हैं। उदाहरण के लिए:

float y = [UIScreen mainScreen].bounds.size.height - [UIApplication sharedApplication].statusBarFrame.size.height - myView.frame.size.height; 
[myView setFrame:CGRectMake(0, y, myView.frame.size.width, myView.frame.size.height)]; 

यहाँ एक वास्तव में ठेठ पूर्ण उदाहरण ... 2013 के ... इस शीर्ष पर एक नेविगेशन बार के साथ एक UITableViewController में अच्छी तरह से काम करता है, और आप autolayout का उपयोग कर नहीं हैं।

Position a UIView relative to the bottom of the parent view?

आशा है कि यह किसी को मदद मिलती है।

2

ऑटोलायआउट के साथ जहां आप स्क्रीन पर दृश्य डालते हैं, एक निश्चित मान है। इस ऑटो समायोजन के लिए आपको कुछ कोड चाहिए। आपको autoresizingMask का उपयोग करने की आवश्यकता होगी। यहाँ से autoresizingMask/

UIView *view = [[UIView alloc] init]; 
[view setAutoresizingMask:UIViewAutoresizingFlexibleTopMargin]; 
3

आप अपने स्प्रिंग्स और टेक (स्वत: आकार बदलना मुखौटा) होना चाहिए कुछ इस तरह सेट ...

enter image description here

तब दृश्य इसे बनाए रखने जाएगा दूरी का उपयोग का एक उदाहरण है स्क्रीन का पैर

अद्यतन

अपनी टिप्पणी में, आप कहते हैं कि तुम इस सेट को सही ढंग से अभी तक दृश्य अभी भी नीचे धकेल दिया जाता है। हालांकि, आपके प्रश्न की छवियों की तरह तुलना नहीं की जाती है। 4-इंच संस्करण में आपका दृश्य स्क्रीन के शीर्ष से ऊपर स्क्रॉल किया गया प्रतीत होता है, जो कि 3.5-इंच संस्करण के मामले में नहीं है। मुझे संदेह है कि इसमें कारण है (या यह है कि बस बी/सी आपको स्क्रीन पर समस्या को फिट करने के लिए अपने 4-इंच तक स्क्रॉल करना पड़ा था?) ... क्या आप अपने प्रश्न पदानुक्रम के बारे में अधिक जानकारी के साथ अपने प्रश्न को जांच सकते हैं और अपडेट कर सकते हैं।

+0

हाय, मेरे पास ऐसा सेटअप है लेकिन यह अभी भी इसे अनदेखा कर रहा है। – ORStudios

+0

@IconicDigital - ठीक है तो यह अजीब है। क्या आपके पास विचारों पर कोई फ्रेम बनाने/सेटिंग फ्रेम पैरामीटर, या ऐसा कुछ और है? – foundry

+0

मजेदार बात यह है कि अगर मैं आईबी में आकार के बीच स्विच करता हूं तो यह ठीक हो जाता है। यदि आप सिम्युलेटर में इसका परीक्षण करते हैं तो इसे काट दिया जाता है। – ORStudios

1

ऐसा करने का सबसे आसान तरीका है अपने दृश्य का चयन करना, फिर संपादक -> पिन -> नीचे की जगह सुपरव्यू पर जाएं। यह विकल्प डिवाइस रिज़ॉल्यूशन के बावजूद कंटेनर व्यू के निचले हिस्से में आपके दृश्य को ठीक करता है।

1

आईओएस 7 के लिए @ जोएल जवाब का विस्तार, हमें स्थिति की ऊंचाई को घटाने की आवश्यकता नहीं है।

float y = [UIScreen mainScreen].bounds.size.height - myView.frame.size.height; 
[myView setFrame:CGRectMake(0, y, myView.frame.size.width, myView.frame.size.height)]; 
संबंधित मुद्दे