मेरे UIScrollView एक बड़ी सामग्री के साथ आबादी वाले और फिर "setZoomScale: एनिमेटेड" के साथ ज़ूम इन करता है, ऐसी है कि वह scrollview फ्रेम में फिट बैठता है। दृश्य ठीक से ज़ूम आउट होता है, और स्क्रॉलव्यू में ठीक से स्थित है। हालांकि, उपयोगकर्ता सामग्री के बाहर स्क्रॉल करने में सक्षम है (स्क्रॉलव्यू पृष्ठभूमि रंग शो)। ऐसा लगता है कि वह मूल सामग्री आकार तक स्क्रॉल कर सकता है (जैसे कि सामग्री ज़ूम आउट नहीं की गई थी)। उपयोगकर्ता आश्चर्यजनक रूप से पर्याप्त है, उपयोगकर्ता मैन्युअल रूप से पहली बार ज़ूम करता है, सबकुछ ठीक काम करता है, और स्क्रॉलव्यू सामग्री आकार में फिर से बाध्य होता है।UIScrollView स्क्रॉल बहुत दूर प्रारंभिक ज़ूम के बाद
मैंने वेब की खोज की है, और ऐप्पल दस्तावेज़ों और उदाहरणों के माध्यम से चले गए हैं, लेकिन किसी को भी एक ही समस्या नहीं मिल सका। ऐप्पल उदाहरण एक ही चीज़ दिखाते हैं जैसा मैं करता हूं।
मेरी सामग्री UIView से ली गई है कि एक कस्टम दृश्य है, और जिसका CALayer (एप्पल उदाहरण के रूप में) एक CATiledLayer ने ले ली है। ड्राइंग मैं ड्रॉलेयर में खुद करता हूं: इनकॉन्टेक्स्ट:।
यहाँ MyScrollViewController से एक कोड का टुकड़ा है:
- (void)loadView {
CGRect frame = [UIScreen mainScreen].applicationFrame;
UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:frame];
scrollView.maximumZoomScale=1.0;
scrollView.delegate = self;
... setup theContentView ...
scrollView.contentSize = theContentView.bounds.size;
scrollView.contentInset = UIEdgeInsetsMake(20, 20, 20, 20);
[scrollView addSubview:theContentView];
self.view = scrollView;
double zoomScale = 0.5; // hardcoded for testing
[scrollView setZoomScale:zoomScale animated:NO];
NSLog(@"zoomscale=%g contentview=%@ contentsize=%@", zoomScale, NSStringFromCGSize(theContentView.bounds.size), NSStringFromCGSize(scrollView.contentSize));
[scrollView release];
}
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
return theContentView;
}
NSLog बयान एक सही तरीके से सेट contentSize पता चलता है और zoomscale ...
आशा वहाँ कुछ स्पष्ट है कि मुझे याद आ रही है ...
किसी को भी इस के लिए एक समाधान था? मुझे एक ही समस्या है, बस दूसरी तरफ दौर। मेरा स्क्रॉलव्यू निहित छवि को प्रदर्शित करने के लिए छोटा है (मैं छवि के नीचे स्क्रॉल नहीं कर सकता) लेकिन सब कुछ ठीक होने के बाद ज़ूम करने के बाद। – Maverick1st
मैंने अगले रनलोप (सीधे लोडव्यू से सीधे) पर ज़ूमस्केल सेट करना समाप्त कर दिया, जिसने काम किया: "[स्वयं प्रदर्शन चयनकर्ता: @ चयनकर्ता (प्रारंभिक ज़ूम) ऑब्जेक्ट: nil afterDelay: 0];"। लेकिन मैं कई अन्य सामान भी लिखता हूं, इसलिए मुझे यकीन नहीं है कि यह एकमात्र चीज है या नहीं। – fishinear
मुझे अंत में एक ही विचार था और यह पूरी तरह से काम करता है। Zidscale को देखते समय आपको प्राप्त एक बोनस DidAppear यह है कि उपयोगकर्ता एनिमेटेड ज़ूम देखता है और इस प्रकार जानता है कि वह जिस छवि को देखता है वह ज़ूम करने योग्य है :) – Maverick1st