मैं UIViewAnimationOptionShowHideTransitionViews विकल्प का उपयोग करता हूं, जो संक्रमण से पहले दृश्य दृश्य पदानुक्रम में देखने के लिए और दृश्य दोनों को अनुमति देता है, लेकिन एक दिखाता है और दूसरे को छुपाता है।
छिपाने के लिए देखने के लिए सेट करें, इसे पर्यवेक्षण में जोड़ें, और संक्रमण से पहले बाधाओं को स्थापित करें। फिर आप समापन ब्लॉक में पुराने दृश्य को हटा सकते हैं। कुछ इस तरह:
[toView setHidden: YES];
[containerView addSubview: toView];
[containerView addConstraints: [NSLayoutConstraint constraintsWithVisualFormat: @"|[toView]|" options: 0 metrics: nil views: NSDictionaryOfVariableBindings(containerView, toView)]];
[containerView addConstraints: [NSLayoutConstraint constraintsWithVisualFormat: @"V:|[toView]|" options: 0 metrics: nil views: NSDictionaryOfVariableBindings(containerView, toView)]];
[UIView transitionFromView: fromView toView: toView duration: 1.0 options: UIViewAnimationOptionTransitionFlipFromBottom | UIViewAnimationOptionShowHideTransitionViews completion:^(BOOL finished) {
[fromView removeFromSuperview];
}];
स्रोत
2012-12-14 23:58:16
।। जो दिखाई देता है, उससे दृश्य को स्वचालित रूप से पर्यवेक्षण से हटा दिया जाता है, भले ही शो/छुपाएं विकल्प दिखाया गया हो। – Andy
कॉल के बाद दृश्य पदानुक्रम को देखते हुए, व्यूव्यू को पर्यवेक्षण से कम से कम नहीं हटाया जाता है (कम से कम आईओएस 6 और आईओएस 7 पर) – honus
ऐसा लगता है कि ऑटोलाउट बाधा के साथ फ्लिप एनीमेशन का उपयोग करने के लिए, हमें 'UIViewAnimationOptionShowHideTransitionViews' सेट करना होगा –