this उदाहरण में एनिमेट नहीं करता है।एक UIView फ्रेम को एनिमेट करना, UIScrollView सबव्यूव हमेशा
जब मैं टैबबंट्रोलर (पूर्णस्क्रीन प्रभाव के लिए) को एनिमेट करता हूं तो मैं PhotoViewerViewController के फ्रेम को एनिमेट कर रहा हूं। फोटोव्यूयर ऐप्पल के फोटो ऐप के समान प्रभाव उत्पन्न करने के लिए एक यूस्क्रोलव्यू का उपयोग करता है। किसी भी कारण से कभी-कभी यह मेरे फोटो व्यूअर फ्रेम के साथ एनिमेट करता है, और कभी-कभी ऐसा नहीं होता है।
फ्रेम आकार को बढ़ाने के दौरान आप पहले उदाहरण में देख सकते हैं, लेकिन फ्रेम आकार को कम करने और टैब बार को पुनर्स्थापित करते समय अच्छी तरह से एनिमेट करता है)।
हालांकि this उदाहरण में जब फोटो लंबवत है तो यह दोनों दिशाओं में कूदता है।
दोनों मामलों में यदि मैं स्क्रॉलव्यू के साथ फोटो पर ज़ूम इन करता हूं, तो यह दोनों दिशाओं में सही ढंग से एनिमेट करता है।
मुझे पता है कि सबूत हैं, लेकिन मैं यहां क्या हो रहा है पर अपनी अंगुली नहीं डाल सकता।
void (^updateProperties) (void) =^{
self.navigationController.navigationBar.alpha = hidden ? 0.0f : 1.0f;
self.navigationController.toolbar.alpha = hidden ? 0.0f : 1.0f;
if (self.tabBarController) {
int height = self.tabBarController.tabBar.bounds.size.height;
for(UIView *view in self.tabBarController.view.subviews)
{
int newHeight;
UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation];
if (UIInterfaceOrientationIsPortrait(orientation)) {
newHeight = hidden ? [[UIScreen mainScreen] bounds].size.height : [[UIScreen mainScreen] bounds].size.height - height;
} else {
newHeight = hidden ? [[UIScreen mainScreen] bounds].size.width : [[UIScreen mainScreen] bounds].size.width - height;
}
if([view isKindOfClass:[UITabBar class]])
{
[view setFrame:CGRectMake(view.frame.origin.x, newHeight, view.frame.size.width, view.frame.size.height)];
}
else
{
CGRect newFrame = CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, newHeight);
[view setFrame:newFrame];
// update our VC frame with animation
[self.view setFrame:newFrame];
}
}
}
};
कोड एसओ पर एक पोस्ट से अनुकूलित: UITabBar wont hide
github पर पूर्ण स्रोत
यहाँ मेरी एनीमेशन ब्लॉक है।
धन्यवाद। उत्तरार्द्ध काम नहीं करता था, लेकिन मैं पूर्व के साथ जाने दूंगा। –
जबकि मैंने इसे अभी तक हल नहीं किया है, मुझे लगता है कि आपने मुझे सही दिशा में इंगित किया है। मुझे यकीन नहीं है कि क्या यह विशेष परिवर्तन PhotoImageView पर ही ट्रिगर किया जा रहा है, या उस स्क्रॉल में शामिल है। –
व्यक्तिगत रूप से मैं स्क्रॉलव्यू की सामग्री को स्क्रॉलव्यू उप-वर्ग में केंद्रित करने के लिए सभी तर्कों को स्थानांतरित कर दूंगा। वहां, आप ज़ूम प्रतिनिधि विधियों का उपयोग करने के बजाय लेआउट निष्पादित करने के लिए -सेट सामग्रीऑफसेट ओवरराइड कर सकते हैं। – hatfinch