मैं रोटेशन परिवर्तनों के दौरान UIScrollView
के contentOffset
मैन्युअल रूप से अपडेट करना चाहता हूं। स्क्रॉल व्यू स्क्रीन भरता है और इसमें लचीली चौड़ाई और लचीली ऊंचाई होती है।सामग्री रोटेशन के दौरान UIScrollView की ऑफसेट
मैं वर्तमान में, willRotateToInterfaceOrientation
में contentOffset अद्यतन करने के लिए कोशिश कर रहा हूँ इस तरह:
- (void) willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
[Utils logPoint:myScrollView.contentOffset tag:@"initial"];
myScrollView.contentOffset = CGPointMake(modifiedX, modifiedY);
[Utils logPoint:myScrollView.contentOffset tag:@"modified"];
}
-(void) didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
[Utils logPoint:myScrollView.contentOffset tag:@"final"];
}
हालांकि, अंतिम मूल्य नहीं संशोधित मूल्य, और यह थोड़े से प्रभावित किया जा रहा है, लेकिन यह नहीं है मुझे कैसे स्पष्ट है।
initial: (146.000000;-266.000000)
modified: (81.000000;-108.000000)
final: (59.000000;-0.000000)
initial: (146.000000;-266.000000)
modified: (500.000000;500.000000)
final: (59.000000;500.000000)
initial: (146.000000;-266.000000)
modified: (-500.000000;-500.000000)
final: (-0.000000;-0.000000)
मैं कैसे एक रोटेशन बदलने के दौरान एक स्क्रॉल देखने के contentOffset अपडेट करते हैं:
ये परिणाम है कि मैं पाने के कुछ कर रहे हैं?
आप 'बजाय willAnimateRotationToInterfaceOrientation' में contentOffset बदलने का प्रयास किया? तब तक एक एनीमेशन ब्लॉक होना चाहिए, शायद परिणाम अलग है। – Pascal
@ पास्कल हां, और यह ठीक काम करता है। फिर भी मैं जानना चाहता हूं कि अगर मैं इसे WillRotateToInterfaceOrientation में बदलता हूं तो यह अपेक्षित व्यवहार क्यों नहीं करता है। – hpique
मेरा अनुमान यह होगा कि माता-पिता का फ्रेम केवल ** 'willRotateToInterfaceOrientation' के बाद ** बदलता है, इसलिए आप एक अलग सामग्री ऑफ़सेट सेट करते हैं, लेकिन वह तुरंत फिर से बदल जाता है क्योंकि पर्यवेक्षक का फ्रेम भी तब बदलता है। ओएस के लिए ऐसा लगता है कि आप कुछ समय पहले फ्रेम बदल चुके होंगे, लंबित रोटेशन के संबंध में नहीं। – Pascal