iphone - ऑटोलेआउट के साथ रोटेशन



objective-c xcode (2)

मैं Xcode में शुरुआत कर रहा हूँ और मैं autolayout के साथ ios6 का उपयोग कर रहा हूँ

मैं अपने uiviewcontroller को घुमाएगा:

सेवा मेरे:

मैं अपने नीचे की पट्टी को घूर्णन से रोकना चाहूंगा एप्पल के कैमरा ऐप रोटेशन के समान कुछ है, लेकिन जो कुछ भी गलत हो रहा है वह है कि सब कुछ घूमता है।

मैंने कुछ कोड को ऐसा करने की कोशिश की

-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration{   
    // [Bar setTransform:CGAffineTransformMakeRotation(M_PI / -2.0)];
    // [Bar setTranslatesAutoresizingMaskIntoConstraints:YES];
}

Answer #1

मुझे नहीं पता कि आईबी द्वारा इसे कैसे प्राप्त किया जाए, लेकिन आप कोड के माध्यम से विशिष्ट बाधाओं को जोड़कर ऐसा कर सकते हैं:

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
  if (UIInterfaceOrientationIsPortrait(toInterfaceOrientation)) {
    [self.view removeConstraints:landscapeConstraints];
  } else {
    [self.view addConstraints:landscapeConstraints];
  }
}

Answer #2

सबसे पहले, क्या आप सुनिश्चित हैं कि आपका दृश्य वास्तव में घूम रहा है?

यदि हां, तो आप क्या करना चाहते हैं, इसके पर्यवेक्षण के निचले भाग में हरे रंग के दृश्य के नीचे ठीक है। आप इंटरफ़ेस बिल्डर में ऐसा करने में सक्षम होना चाहिए। अपने हरे रंग का दृश्य चुनें, और अपनी स्टोरीबोर्ड फ़ाइल के निचले भाग में स्थित प्रतिबंध बटन पर क्लिक करें (बीच एक):

इसके बाद, नीचे दी गई छवि में जैसा "नीचे अंतरिक्ष से सुपरवाइव" का चयन करें:

यह एक बाधा को कहता है कि "इस दृश्य के तल को अपने पर्यवेक्षण के निचले हिस्से में टिकी रखें"। ऐसा करने से आपको वह परिणाम मिलना चाहिए जो आप चाहते हैं। मैं एक त्वरित नमूना परियोजना में इसे स्थापित किया है ये चित्र क्रमशः पोर्ट्रेट और लैंडस्केप में दिखते हैं:





autolayout