2012-05-03 13 views
14

जैसे UIWebView ज़ूम करें, मैं एक दृश्य को फिर से बनाना चाहता हूं कि आप एक ईमेल देखने पर आईफोन/आईपैड मेल ऐप या स्पैरो की तरह ज़ूम कर सकते हैं, जहां शीर्ष पर जानकारी का ब्लॉक है और फिर UIWebView है। मैं स्पष्ट रूप से इंटरफ़ेस बिल्डर या कोड में यह आसानी से कर सकता हूं, लेकिन मैं इसे मेल ऐप की तरह व्यवहार करना चाहता हूं।आईओएस मेल ऐप

'मेल ऐप की तरह' मेरा मतलब है, जब आप ज़ूम (दृश्य में कहीं भी) चुटकी करते हैं, तो UIWebView एकमात्र ऐसा दृश्य है जो वास्तव में ज़ूम करता है, और शीर्ष सामग्री एक ही आकार में रहता है। जब आप बहुत दूर ज़ूम आउट करते हैं और पृष्ठभूमि देखते हैं तो संपूर्ण दृश्य ज़ूम आउट करता है (केवल UIWebview नहीं) और संपूर्ण दृश्य स्क्रॉल भी।

मैंने कुछ प्रयोग किया है और UIWebView के शीर्ष पर शीर्ष दृश्य डालने की तरह पहले से ही कुछ सुझावों का प्रयास किया है, सामग्री आकार के आधार पर UIWebView की ऊंचाई बढ़ाकर यह हमेशा शीर्ष दृश्य के साथ समाप्त होता है ज़ूमिंग भी, या सिर्फ UIWebView।

मुझे उम्मीद है कि कुछ समझ में आता है। यह वास्तव में सरल हो सकता है लेकिन मैं थोड़ी देर के लिए इसे हल करने की कोशिश कर रहा हूं कि मैं पेड़ों के लिए लकड़ी को और नहीं देख सकता।

यह एक मोनो टच ऐप के लिए है, लेकिन अगर किसी के पास उद्देश्य-सी उदाहरण हैं या कुछ भी मैं कन्वर्ट और पोस्ट कर सकता हूं।

+0

आपको जो भी चाहिए वह करने के लिए आप 'MFMailComposeViewController' को उपclass कर सकते हैं? यह ईमेल भेजने के लिए अंतर्निहित है। – jonathanpeppers

उत्तर

7

मैंने बस हमारे आवेदन के लिए ऐसा किया है; यह उतना आसान नहीं है जितना लगता है, लेकिन आईओएस 5 पर यह आईओएस 4 की तुलना में कुछ कम जटिल होना चाहिए। शीर्ष भाग का एक दृश्य देखें जो आप स्थिर रखना चाहते हैं। जब आपका वेब व्यू HTML को लोड करना समाप्त करता है और इसे प्रस्तुत करता है, तो वेब दृश्य के scrollView प्राप्त करें, और उस पर एक दृश्य के रूप में अपना दृश्य जोड़ें। स्क्रॉल व्यू के contentSize.height पर शीर्ष दृश्य की फ्रेम ऊंचाई जोड़ें, और स्क्रॉल व्यू के बाकी सबव्यूज़ (0 जो आपके शीर्ष दृश्य नहीं हैं) की ऊंचाई origin.y पर जोड़ें। वेब व्यू के स्क्रॉल व्यू के प्रतिनिधि के रूप में अपना व्यू कंट्रोलर सेट करें। जब भी उपयोगकर्ता स्क्रॉल करता है:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView 
{ 
    CGRect frame = contentView.frame; 

    if(scrollView.contentOffset.x < 0) 
    { 
     frame.origin.x = 0; 
    } 
    else if((scrollView.contentOffset.x + contentView.frame.size.width) > scrollView.contentSize.width) 
    { 
     frame.origin.x = scrollView.contentSize.width - contentView.frame.size.width; 
    } 
    else 
    { 
     frame.origin.x = scrollView.contentOffset.x; 
    } 

    [contentView setFrame:frame]; 
} 

यह मेल.एप व्यू की तरह व्यवहार करना चाहिए।

+0

स्क्रॉल व्यू में सही स्थान पर अपना विचार रखते हुए आप दूसरी समस्या को ठीक कर सकते हैं: didScroll:। दूसरा मुद्दा तीसरा दृश्य जोड़कर हल किया जा सकता है जिसका काम आवश्यक है जहां नीचे के हिस्से को सफेद रखना है। –

+0

@LeoNatan: आपके उत्तर के लिए धन्यवाद! आपने मेरा दिन बना दिया ! :) – Arkan

+0

चीयर्स, धन्यवाद! –

संबंधित मुद्दे