2009-07-20 18 views
22

ठीक है इसलिए मैं आईफोन विकास के लिए पूरी तरह से नया हूं और मुझे अपने ज्ञान के लिए बहुत दूर मिल गया है। मुझे बस अपनी परियोजना में इन 4-6 चित्रों को प्रोग्राम करने का निर्णय लेने में मदद की ज़रूरत है।UIView बनाम UIViewController

मैं मूल रूप से उपयोगकर्ता को एक तस्वीर से दूसरी तस्वीर में स्वाइप करने में सक्षम होने के साथ एक कॉमिक बुक बनाना चाहता हूं। क्या ये सभी तस्वीर UIVIEW या UIViewController में होनी चाहिए?

और इन तस्वीरों को जोड़ने पर कोई सुझाव है ताकि मैं स्पर्श के लिए कोड जोड़ सकूं!

उत्तर

41

एक UIViewController कुछ भी प्रदर्शित नहीं कर सकता; यह बस UIView के प्रदर्शन को निर्देशित करता है। तो वास्तविक चित्रों को UIView में करने की आवश्यकता होगी। इसके अलावा, आपका UIView स्पर्श, इशारा इत्यादि को पहचानने के लिए ज़िम्मेदार है। हालांकि, यह कहां समाप्त होता है; आपके कार्यक्रम की वास्तविक प्रतिक्रिया UIViewController तक होनी चाहिए।

दूसरे शब्दों में, आप एक यूआईवीव सबक्लास को बाएं या दाएं स्वाइप को पहचानने के तरीके को सिखाएंगे, और एक बार यह तय करने के बाद कि एक स्वाइप किया गया था, यह उस घटना के आपके UIViewController उप-वर्ग को सूचित करेगा। नियंत्रक तब तय करेगा कि आगे कौन सी तस्वीर प्रदर्शित की जाएगी, और इसे सेट अप करने के लिए दृश्य बताएं।

यह Model-View-Controller पैटर्न का हिस्सा है। यह आईफोन विकास में एक प्रसिद्ध और व्यापक रूप से इस्तेमाल किया जाने वाला पैटर्न है, इसलिए आपको इसे पढ़ने के लिए अच्छी तरह से सेवा दी जाएगी।

4

आप दोनों का उपयोग करेंगे। कोको टच विकास एमवीसी (मॉडल, व्यू, कंट्रोलर) पद्धति का पालन करता है। यह कोड तर्क और उपयोगकर्ता इंटरफ़ेस तत्वों को अलग करने का एक तरीका है। UIView वह जगह है जहां आप इसे कैसा दिखते हैं, UIViewController वह कक्षा है जहां आप ईवेंट को संभालते हैं। यदि आप सामग्री के कई पृष्ठों के माध्यम से स्वाइप करने का सबसे आसान तरीका चाहते हैं, तो UIPageControl देखें।

4

चित्र, एक UIView वस्तु या किसी वस्तु UIView से इस तरह के UIControl, UIScrollView के रूप में subclassed को (addSubview के माध्यम से) जोड़ा जाना चाहिए आदि

आप शायद अपने स्वयं के एक दृश्य के वर्ग बनाने की जरूरत नहीं है, उदाहरण के लिए, MyView। मैंने पाया है कि एक कस्टम दृश्य बनाने का एकमात्र असली कारण दक्षता या अत्यधिक गतिशील सामग्री जैसे टेक्स्ट या छवियों के लिए है जो दृश्य के भीतर घूमते हैं। यदि आप फंक्शन drawRect को लागू करने की योजना नहीं बनाते हैं, तो कस्टम व्यू से परेशान न हों।

आप UIViewController को उपclass करना चाहते हैं। यह आपके विचार के व्यवहार का प्रबंधन करेगा, और यह (आमतौर पर) उस दृश्य को लिखने के लिए सबसे अच्छी जगह है जो इसे नियंत्रित करता है।

यूआईपीएज कंट्रोल शायद स्वाइपिंग व्यवहार को लागू करने का सबसे आसान तरीका है, लेकिन यह मुश्किल हो सकता है - दस्तावेज़ीकरण को ध्यान से पढ़ें।