2009-12-02 11 views
17

मैंने ज़ूम करने योग्य UIScrollView बनाया और इसमें 100 सबव्यूव्यू जोड़े (टाइल किए गए)। दृश्य पूरी तरह से बाएं और दाएं स्क्रॉल करता है। हालांकि, मैं ज़ूमिंग की अनुमति देना चाहता हूं।उचित रूप से UIScrollView को ज़ूम करना जिसमें कई सबव्यू

ऐसा करने के लिए मैंने पढ़ा है कि मेरे प्रतिनिधि को लागू करने की जरूरत है:

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView { 
    return ???; 
} 

मैं केवल एक subview ज़ूम करने के लिए है, तो वे कहते हैं कि विधि में है कि subview लौटने कि उदाहरण देखा है। मेरे मामले में, हालांकि, मेरे पास बहुत कुछ है। ज़ूमिंग करने का सही तरीका क्या है?

मैंने एक और UIView बनाने और उस पर 100 सबव्यूव्यू जोड़ने की कोशिश की। और उसके बाद उपरोक्त विधि पर एक दृश्य वापस करें, लेकिन मैं काम नहीं करता (यह ज़ूम करता है लेकिन एक बार यह बंद हो जाता है, यह अब और अधिक इंटरैक्टिव नहीं है)। इसके फ्रेम की स्थापना के बिना

UIView *zoomableView = [[UIView alloc] init]; 

:

+0

आप UIScrollView ही लौटने की कोशिश की? – fbrereto

+0

हां, यह पहली बात थी जिसकी मैंने कोशिश की थी। यह चीजों को भी गड़बड़ कर रहा है ... – Dimitris

उत्तर

40

वास्तव में,

यह वही है एप्पल भी Scroll View Programming Guide में उल्लेख किया गया है:

बस, दृश्य बनाने इस दृष्टिकोण के सभी subviews जोड़ सकते हैं और scrollview के लिए एक एकल subview के रूप नव निर्मित दृश्य जोड़ने।

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView 
{ 
    return [self.scrollView.subviews objectAtIndex:0]; 
} 
2

मैं दृश्य जहां मैं का उपयोग कर सब कुछ जोड़ा बनाया।

समस्या को हल किया गया था, जब सभी सबव्यूव्स जोड़ने के बाद, मैंने अपने फ्रेम को सभी टाइल किए गए सबव्यूज़ को समायोजित करने के लिए पर्याप्त कुछ सेट किया।

+0

मेरे लिए भी काम किया - पिता के फ्रेम के फ्रेम आकार को इसके सबव्यूज़ के अधिकतम फ्रेम आकार में सेट करना (चुड़ैल मेरे मामले में छवि का आकार था)। – Yony

0

आप हवलदार: ..

फिर viewForZoomingInScrollView प्रतिनिधि विधि में सूचकांक 0 में ऑब्जेक्ट प्रदान एक सबव्यू के रूप में स्क्रॉल दृश्य में दृश्य जोड़ने के लिए आप क्या करने जा रहे हैं।

उदाहरण के लिए: आप दृश्य स्क्रॉल करने के लिए छवि दृश्य जोड़ रहे हैं तो लिखने

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView 
{ 
return imageView object; 
} 
संबंधित मुद्दे