2009-08-06 16 views
21

UITableViewCell में एम्बेडेड UITextField संपादित करते समय मैं UITableView में स्क्रॉलिंग को अक्षम करने का प्रयास कर रहा हूं। यह संपादित होने पर सेल को दृष्टि से बाहर स्क्रॉल करने से रोकने के लिए है (और कुछ संबंधित सेल "रीसाइक्लिंग" समस्याओं से बचने के लिए भी। जबकि आसपास googling मैंने देखा है कि किसी स्पष्ट सुझाव:एक UITableView (आईफ़ोन एसडीके 3.0) में स्क्रॉलिंग अक्षम करें

tableView.scrollEnabled = NO: 

या यहाँ तक कि

tableView.userInteractionEnabled = NO; 

यह हालांकि (कम से कम मेरे लिए काम नहीं करता है ... iPhone SDK 3.0, सिम्युलेटर पर करने की कोशिश की) मैंने इन गुणों को NO पर सेट किया है, मैं यह भी लॉग इन करके जांच करता हूं कि गुण NO पर सेट हैं, लेकिन UITableView सामान्य रूप से ईवेंट को स्पर्श करने के लिए प्रतिक्रिया दे रहा है। और यह भी खुशी से स्क्रॉल करता है। मैं उस चिंतित नहीं होगा अगर नेट पर कोई दावा नहीं कर रहा था कि यह वास्तव में काम करता है।

क्या मुझे कुछ याद आ रही है? या अपने सुपरक्लास (UIScrollView) में फिर से कार्यक्षमता उपलब्ध कराने के लिए एकमात्र वैकल्पिक उप-वर्गीकरण UITableView है?

उत्तर

49

क्या आपने self.tableView.scrollEnabled = NO; का उपयोग करने का प्रयास किया था?

मैंने अक्सर कोशिश की है कि वेब से यह कोड काम नहीं करता है, बस उपसर्ग स्वयं की कमी के कारण। मैंने बिना किसी समस्या के इसे आजमाया।

मुझे नहीं पता कि यह काम गतिशील रूप से चालू और बंद करते समय क्या काम करता है। यह जब वस्तु आरंभ स्थायी सेटिंग्स के लिए कम से कम काम पर है ...

2

मैंने कोशिश की:

[(UIScrollView*)[self view] setScrollingEnabled:NO]; 

और यह काम किया ([आत्म दृश्य] वर्तमान दृश्य नियंत्रक के मेरे विचार, यानी, एक UITableView है)।

बात है, मैं एक चेतावनी मिलती है:

'UIScrollView' का जवाब नहीं हो सकता है '-setScrollingEnabled:'

सब ईमानदारी में, संपत्ति "scrollEnabled" है, लेकिन इसके साथ भी काम करता है उपरोक्त कोड!

तो, "सही" जिस तरह से काम करने के लिए, किया जाना चाहिए:

[(UIScrollView*)[self view] setScrollEnabled:NO]; 

क्यों यह भी अन्य तरीके से, मुझे भ्रामक काम करता है ...

19

आप UITableViewController उपयोग कर रहे हैं, आपके पास tableView संपत्ति भी है, जिसमें कोई कास्टिंग आवश्यक नहीं है। यह मेरे लिए काम करता है:

self.tableView.scrollEnabled = NO; 

मुझे बताएं कि यह आपके लिए काम करता है या नहीं।

+0

हाँ यह भाई काम करता है, यही कारण है कि लोगों को केवल सवाल पूछते हैं और सही ans के लिए टिक देने की कभी नहीं लगता है? –

+0

यह मेरे मामले के लिए काम नहीं किया। केवल setScrollEnabled विधि को कॉल करना मेरे लिए काम कर रहा है। ऐसा नहीं है कि हुड के नीचे से यह समझ में आता है कि उन्हें एक ही कोड को निष्पादित किया जाना चाहिए। – brodney

2

इनमें से कोई भी जवाब मेरे मामले में काम नहीं करता है। तालिका दृश्य कभी स्क्रॉलिंग रखता है हालांकि प्रत्येक scrollView अक्षम किया गया था।

अंत में, मुझे here में समाधान मिला है, दावा करते हुए कि UITableViewController यह "मेरे लिए" करता है जब भी कीबोर्ड UITextView को संपादित करता है।

समाधान के बजाय UIViewController से प्राप्त करना है और आवश्यक तालिका कार्यक्षमता को लागू करना है।

6

क्या आपने स्टोरीबोर्ड पर स्क्रॉलिंग सक्षम करने की कोशिश की है?

Scrolling Enabled : NO

1

अगर आप केवल स्क्रॉल करने के लिए चाहते हैं, तो अपनी सामग्री दिखाई नहीं देता है तो सेट:

yourTableview.alwaysBounceVertical = नहीं;

यहाँ अगर आपकी सामग्री दिखाई दे रहा है तो अपने tableview स्क्रॉल नहीं होंगे

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