मेरे पास एक UIScrollView है और मैं चाहता हूं कि यह दोनों दिशाओं (यह वर्तमान में करता है) में स्क्रॉल करने में सक्षम हो, लेकिन एक समय में केवल एक ही। इसलिए, उदाहरण के लिए, यदि आप इसे क्षैतिज रूप से स्क्रॉल करना शुरू करते हैं, तो यह तब तक लंबवत नहीं होगा जब तक आप इसे जाने और लंबवत रूप से आगे बढ़ना शुरू नहीं करते। मैं यह करने के बारे में कैसे जा सकता हूं?UIScrollView एक समय में केवल एक दिशा में स्क्रॉलिंग
उत्तर
directionalLockEnabled
संपत्ति को YES पर सेट करें। ऐप्पल दस्तावेज़ों से:
यदि यह संपत्ति नहीं है, तो दोनों क्षैतिज और लंबवत दिशाओं में स्क्रॉलिंग की अनुमति है। यदि यह संपत्ति हां है और उपयोगकर्ता एक सामान्य दिशा (क्षैतिज या लंबवत) में खींचना शुरू करता है, तो स्क्रॉल दृश्य दूसरी दिशा में स्क्रॉलिंग अक्षम करता है। यदि ड्रैग दिशा विकर्ण है, तो स्क्रॉलिंग लॉक नहीं की जाएगी और ड्रैग पूरा होने तक उपयोगकर्ता किसी भी दिशा में खींच सकता है। डिफ़ॉल्ट मान NO
इस प्रश्न का स्वीकार्य उत्तर पूरी तरह से सही नहीं है। (के रूप में मूल जवाब में उद्धृत) directionalLockEnabled
के लिए वर्तमान प्रलेखन के अनुसार:
तो खींचें दिशा विकर्ण है, तो स्क्रॉल बंद नहीं किया जाएगा और उपयोगकर्ता किसी भी दिशा में खींच सकते हैं जब तक खींचें पूरा करती है।
मुझे यह मामला खुद मिल गया है। यदि ड्रैगिंग की प्रारंभिक दिशा x और y axes के बीच 45-डिग्री कोण के करीब है, तो दिशात्मक लॉकिंग विफल हो जाती है। यदि आप अधिक क्षैतिज या लंबवत खींचते हैं, तो सक्रिय लॉकिंग।
एक ही रास्ता के लिए सच uni-अक्षीय ताला पूरा करने के लिए, को देखने के लिए इस लिंक: http://bogdanconstantinescu.com/blog/proper-direction-lock-for-uiscrollview.html
इस लक्ष्य को हासिल करने के लिए सरल तरीका सेट कर दिया जाता YES
को directionalLockEnabled
और इस
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
if (scrollView.contentOffset.x != 0 &&
scrollView.contentOffset.y != 0) {
scrollView.contentOffset = CGPointMake(0, 0);
}
}
बहुत सरल और बहुत अच्छा काम करता है। धन्यवाद। –
यह मेरे लिए @ जो xi उत्तर के आधार पर काम किया। स्विफ्ट 3,0
func scrollViewDidScroll(_ scrollView: UIScrollView) {
if scrollView.contentOffset.x != 0 && scrollView.contentOffset.y != 0 {
scrollView.contentOffset = CGPoint(x: 0, y: 0)
}
}
- 1. स्क्रॉलिंग की UIScrollView दिशा
- 2. केवल एक दिशा में फिक्स्ड स्थिति
- 3. क्षैतिज लंबन स्क्रॉलिंग UIScrollView आईओएस
- 4. दूसरी दिशा में स्क्रॉलिंग के साथ एक दिशा में दृश्यमान अतिप्रवाह
- 5. अनंत क्षैतिज स्क्रॉलिंग UIScrollView
- 6. प्रोग्रामिंग रूप से स्क्रॉलिंग करते समय संकेतक दिखाएं UIScrollView
- 7. UIscrollView DidScroll - केवल
- 8. सीएसएस 3 बॉक्स केवल एक दिशा में छाया?
- 9. एमएसडीटीसी/डीटीसीपीिंग केवल एक दिशा में काम करता है
- 10. UIScrollView: स्क्रॉलिंग काम नहीं करता
- 11. UIScrollView स्क्रॉलिंग को सिंक्रनाइज़ करना
- 12. आईआईएस UIWebView एक UIScrollView
- 13. एक UIScrollView
- 14. आईफोन - UIView के अंदर UIScrollView स्क्रॉलिंग
- 15. एक MKMapView में स्क्रॉलिंग को रोकें, जब
- 16. केवल एक समय में एक सत्र को अनुमति दें
- 17. स्क्रॉलिंग अक्षम है जब मैं UIScrollView
- 18. UIScrollView
- 19. चरणबद्ध वृद्धि में क्षैतिज UIScrollView स्क्रॉल करना?
- 20. jquery tableorter AJAX तालिका केवल एक दिशा क्रमबद्ध
- 21. नीचे की दिशा में ऊपर की दिशा में स्केल div?
- 22. एक UITableView (आईफ़ोन एसडीके 3.0) में स्क्रॉलिंग अक्षम करें
- 23. UIScrollView
- 24. लूप एक UIScrollView
- 25. UIScrollView
- 26. iPhone: एक UIScrollView
- 27. असीमित UIScrollView
- 28. एक ही समय में
- 29. UIScrollView
- 30. केवल एक div के अंदर स्क्रॉलिंग, जबकि वेबसाइट
हुह, मैं आईबी में है कि गुण सेट, लेकिन यह काम नहीं किया। यह केवल प्रोग्रामेटिक रूप से काम किया। धन्यवाद! – Letrstotheprez
मैंने इसे इसमें जोड़ा: - (शून्य) scrollViewDidEndDecelerating: (UIScrollView *) scrollView मेरे लिए काम किया। और जोड़ा: समारोह में scrollView.directionalLockEnabled। जब मैंने इस जवाब को पढ़ा तो मुझे यह समझने में थोड़ा समय लगा कि मैं दिशा क्या जोड़ रहा था लॉक सक्षम है और जहां मैं इसे जोड़ रहा था –