2010-04-23 16 views
7

मुझे आईफोन पर एक दृश्य बनाने की जरूरत है जो छवियों की एक गैलरी के माध्यम से क्षैतिज स्क्रॉल करता है। मुद्दा यह है कि इस गैलरी में छवियों के 100 से अधिक होने की संभावना है, जिन्हें प्रस्तुत करने की आवश्यकता है, इसलिए मैं उन्हें एक ही बार में एक ही UIScrollView में लोड करने से बचाना चाहता हूं और प्रदर्शन को नष्ट कर सकता हूं। मुझे एक ऐसा दृश्य बनाने की ज़रूरत है जो प्रदर्शन को बढ़ाने और मेमोरी ओवरहेड को कम करने के लिए दृश्य ऑब्जेक्ट्स (जैसे UITableView) को रीसायकल करता है, लेकिन इसे क्षैतिज फैशन में स्क्रॉल करने की आवश्यकता है।आईफोन क्षैतिज स्क्रॉलिंग तालिका

कोई विचार? क्या UITableView ऑपरेशन क्षैतिज बनाना संभव है?

धन्यवाद!

उत्तर

1

आप एक बड़े स्क्रॉलव्यू का उपयोग कर सकते हैं, और स्क्रॉल स्थिति बदलने के लिए मॉनीटर कर सकते हैं। आप छवियों को उप-दृश्य के रूप में जोड़ सकते हैं क्योंकि वे वास्तविक दृश्यमान क्षेत्र में आ रहे हैं, और उन्हें हटाए जाने के बाद हटा दें।

इस तरह, आपको किसी भी समय किसी भी समय छवि दृश्यों की एक छोटी संख्या दिखाई देनी चाहिए, लेकिन आप उन सभी को "वहां" उपस्थिति देते हैं।

आप अपनी छवि और स्थान को बदलकर छवि दृश्यों को रीसायकल भी कर सकते हैं ताकि आप जटिल वस्तुओं को बना और नष्ट नहीं कर रहे हों। यह UITableView कोशिकाओं के साथ करता है।

+0

विचारों के लिए धन्यवाद। मैं उम्मीद कर रहा था कि ओएस में रीसाइक्लिंग तंत्र का उपयोग करने का एक तरीका होगा, और इसे अपने कोड में प्रबंधित करने की ज़रूरत नहीं है ... लेकिन मैं इसके साथ कुछ प्रयास करूँगा और देख सकता हूं कि यह कैसा प्रदर्शन करता है। – Devunwired

+0

UITableViewController का उपयोग करने का एक तरीका है, कृपया नीचे दिए गए मेरे उत्तर की समीक्षा करें –

0

मैं मानता हूँ mbmcavoy साथ, आप भी एक नज़र iPhone/iPad – AppStore like UIScrollView with paging and preview ले जा सकते हैं इस लेख में बताया गया है कि तुम क्या UIScrollView के बारे में और साथ ही एक अच्छा उदाहरण और स्रोत कोड प्रदान करता जरूरत है।

सादर

0

यह एक UITableView क्षैतिज जोड़ने के लिए संभव है? स्क्रीन की तुलना में एक अलग अभिविन्यास में। फिर आप नियमित UITableView semantics का उपयोग कर सकते हैं जहां प्रत्येक पंक्ति एक ऐसी छवि होती है जो लंबवत के बजाय क्षैतिज स्क्रॉल करती है।

-1

मैं मैं तुम्हारे लिए जवाब है लगता है एक UITableView स्क्रॉल क्षैतिज के बारे में:

  1. एक UIScrollView बनाने (और को निष्क्रिय लंबवत स्क्रॉल)
  2. पुस्तक के अंदर एक UITableView
  3. परिवर्तन दृश्य डाल तालिका दृश्य चौड़ाई के रूप में आप UIScrollView.contentSize तालिका दृश्य चौड़ाई
  4. की इच्छा और अद्यतन करें
+0

तालिका दृश्य जोड़ना चौड़ाई के बावजूद क्षैतिज रूप से स्क्रॉल नहीं करता है। – David

2

यह ट्रांसफॉर्म को लागू करने जैसा आसान है।

यहां कोड है। अपने tableViewController init में यह लिखें:

self.view.frame = CGRectMake(100,-5,250,350); //any Frame of your choice 
CGAffineTransform trans = self.view.transform; // get current transform (i.e. portrait) 
trans = CGAffineTransformRotate(trans, (M_PI/-2.0)); // rotate 90 degrees to go landscape 
self.view.transform = trans; // set current transform (landscape) 

लेकिन अब क्या आपको पता करने की जरूरत है कि अपने अक्ष भी लगा दिया जाता था है। ऊंचाई में किए गए कोई भी परिवर्तन चौड़ाई (और इसके विपरीत) को बदल देंगे और orig.x में किए गए किसी भी बदलाव में orig.y (और इसके विपरीत)

+1

आप चाहते हैं "उदाहरण" नहीं "यानी" - [विकिपीडिया] से (http://en.wikipedia.org/wiki/List_of_Latin_abbreviations): "उदाहरण" "उदाहरण है" ("उदाहरण के लिए", "उदाहरण के लिए"); "यानी" है "आईडी est" ("वह है", "दूसरे शब्दों में") – Thromordyn

+0

माफी। मेरी गलती। सुधार @ थ्रोमोर्डिन के लिए धन्यवाद –

0

इस पुराने धागे का उत्तर पोस्ट करना क्योंकि सत्यापित उत्तर सही नहीं है। आप एक UITableViewController और इसके dequeueReusableCellWithIdentifier अंतर्निहित सुविधाओं का उपयोग कर सकते हैं।

चाल आपके टेबलव्यू को घूमने के लिए है और फिर अपने सेल को विपरीत दिशा में घुमाएं।

viewDidLoad में

आप जोड़ देगा:

self.view.transform = CGAffineTransformMakeRotation(-M_PI_2); 

और फिर cellForRowAtIndexPath में आप का प्रयोग करेंगे:

cell.containerView.transform = CGAffineTransformMakeRotation(M_PI_2); 

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

यह भी ध्यान दें कि यह वर्ग आयाम वाले कोशिकाओं के साथ बेहतर काम करेगा, अन्यथा आप ऊंचाई/चौड़ाई गणना के साथ संघर्ष कर सकते हैं।

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