क्या कोई तरीका है जिसमें हम जानते हैं कि UITableView
ऊपर की दिशा में या नीचे की ओर स्क्रॉल किया जा रहा है या नहीं?कैसे पता चलेगा कि किस तरह से UITableView को स्क्रॉल किया जा रहा है
उत्तर
आप सामग्री ऑफ़सेट में अंतर को ट्रैक कर सकते हैं। पुराने सदस्य को एक सदस्य/स्थैतिक चर में रखें और वर्तमान के खिलाफ जांचें। यदि पुराना मान कम है तो स्क्रॉलिंग को नीचे निर्देशित किया गया था और इसके विपरीत।
UITableView
UIScrollView
सबक्लास है, इस प्रकार आप खुद को UIScrollViewDelegate
के रूप में सेट कर सकते हैं और स्क्रॉल व्यू प्रतिनिधि कॉलबैक प्राप्त कर सकते हैं।
इन प्रतिनिधि तरीकों में से एक के लिए तर्क (-scrollViewDidScroll:
) स्क्रोल दृश्य है जो स्क्रॉल करता है, आप इसे अपने टेबल दृश्यों से तुलना कर सकते हैं यह जानने के लिए कि यह कौन सा स्क्रॉल किया गया था।
क्षमा करें, मैंने आपके प्रश्न को गलत तरीके से पढ़ा है। मैंने सोचा था कि आप जानना चाहते हैं जो तालिका दृश्य स्क्रॉल किया जा रहा है (मुझे "रास्ता" याद आया)।
दिशा जानने के लिए आप पिछले ऑफसेट को एक चर में रख सकते हैं और देख सकते हैं कि डेल्टा (current.y - past.y) सकारात्मक है (नीचे स्क्रॉल करना) या नकारात्मक (स्क्रॉलिंग)।
-(void) scrollViewDidScroll:(UIScrollView *)scrollView
{
CGPoint currentOffset = scrollView.contentOffset;
if (currentOffset.y > self.lastContentOffset.y)
{
// Downward
}
else
{
// Upward
}
self.lastContentOffset = currentOffset;
}
क्या हम ऐसा कर सकते हैं?
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
if ([scrollView.panGestureRecognizer translationInView:scrollView].y > 0) {
// down
} else {
// up
}
}
यह प्रारंभिक स्पर्श के आधार पर ऊपर या नीचे भेज देगा, इसलिए यदि आप pt200 पर शुरू करेंगे, तो pt100 तक और pt199 तक नीचे जाएं, आप ऊपर राज्य प्राप्त करेंगे –
बिल्कुल सही! यह UIScrollView बाउंस बदलने की स्क्रॉल दिशा की समस्या हल करता है। – chicobermuda
यह सच नहीं है, यदि आप नीचे स्क्रॉल करते हैं तो 100.0pt और 1.0pt ऊपर की ओर जाने दें, आपका कोड नीचे की ओर ट्रिगर करेगा (transl.y 99.0 होगा) –
-(void)scrollViewWillEndDragging:(UIScrollView *)scrollView
withVelocity:(CGPoint)velocity
targetContentOffset:(inout CGPoint *)targetContentOffset{
if (velocity.y > 0){
NSLog(@"up");
}
if (velocity.y < 0){
NSLog(@"down");
}
}
यह सबसे अच्छा जवाब जैसा लगता है ... –
बहुत बढ़िया .. !! !:) – itsji10dra
और यदि आप रीफ्रेश करने के लिए होमब्री खींचना चाहते हैं (या अन्य दृश्य ऑफसेट रिश्तेदार व्यवहार), तो यह तरीका है जहां आप स्क्रॉलव्यू के ऑफसेट का पता लगाने के दौरान टाई करेंगे - 'targetContentOffset' नहीं (वह जगह है जहां स्क्रॉल समाप्त हो जाएगा ऊपर एनीमेशन के बाद): 'अगर (scrollView.contentOffset.y <0)' –
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
if (yourTableView.isDragging || yourTableView.isDecelerating)
{
// your tableview is scrolled.
// Add your code here
}
}
यहाँ आप अपने tableview नाम के बजाय "yourTableView" को बदलने के लिए।
yourTableView.isDragging - यदि उपयोगकर्ता स्क्रॉल करना शुरू कर देता है तो यह यस लौटाता है। इसे आरंभ करने के लिए कुछ समय और दूरी की आवश्यकता हो सकती है।
yourTableView.isDecelerating - यदि उपयोगकर्ता ड्रैग नहीं कर रहा है (स्पर्श करें) लेकिन स्क्रॉल दृश्य अभी भी चल रहा है, तो यह YES लौटाता है।
आप इस तरह से UIScrollView
की प्रतिनिधि विधि को लागू करके ऐसा कर सकते हैं, यह सुंदर है।
पीएस: lastOffset
और scrollingUpward
व्यू कंट्रोलर की संपत्ति है।
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
CGPoint currentOffset = scrollView.contentOffset;
self.scrollingUpward = currentOffset.y > self.lastOffset.y;
self.lastOffset = currentOffset;
}
override func scrollViewWillEndDragging(scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {
if targetContentOffset.memory.y < scrollView.contentOffset.y {
//println("Going up!")
} else {
// println("Going down!")
}
}
- 1. कैसे पता चलेगा कि MediaRecorder चल रहा है या नहीं?
- 2. मुझे कैसे पता चलेगा कि एक तैयार वक्तव्य कैश किया जा रहा है या नहीं?
- 3. मुझे कैसे पता चलेगा कि स्क्रॉलव्यू पहले से नीचे स्क्रॉल किया गया है?
- 4. कैसे पता चलेगा कि UITableView एनीमेशन कब पूरा हो गया है?
- 5. मुझे कैसे पता चलेगा कि कौन से इंडेक्स का उपयोग किया जा रहा है और इंडेक्स का उपयोग किस क्वेरी का उपयोग कर रहा है?
- 6. यह कैसे पता चलेगा कि उपयोगकर्ता डेटाग्रिडव्यू
- 7. जावा - कैसे पता चलेगा कि धागा इंतजार कर रहा है?
- 8. मुझे कैसे पता चलेगा कि
- 9. कैसे पता चलेगा कि मैक ओएस ऐप किस पर चल रहा है?
- 10. उपयोगकर्ता को यह कैसे पता चलेगा कि UIPageViewController का उपयोग करते समय पृष्ठों को चालू किया जा सकता है?
- 11. जांच कर रहा है कि क्या विंडोज़ स्क्रॉल बार बनाता है, सभी तरह से नीचे स्क्रॉल किया जाता है?
- 12. मुझे कैसे पता चलेगा कि मेरे NSTextView में अनुलग्नक विशेषता कब जोड़ा जा रहा है?
- 13. मुझे कैसे पता चलेगा कि विंडोज नींद या हाइबरनेट मोड में कब जा रहा है?
- 14. मुझे कैसे पता चलेगा कि ModalViewController दिखाया जा रहा है या नहीं?
- 15. मुझे कैसे पता चलेगा कि Google विज़ुअलाइज़ेशन
- 16. मुझे कैसे पता चलेगा कि एक पृष्ठ वास्तव में पूरी तरह से लोड हो गया है?
- 17. कैसे पता चलेगा कि ग्राफिक्सपैथ में सी #
- 18. बाहरी निर्भरताओं को कैसे प्रबंधित किया जा रहा है जिन्हें लगातार संशोधित किया जा रहा है
- 19. मुझे याद है कि किस तरह से पहलुओं को प्रश्न
- 20. यह कैसे पता चलेगा कि UserControl IsFocused
- 21. मुझे कैसे पता चलेगा कि विंडोज सीई
- 22. कैसे पता चलेगा कि संघ से कौन सा चर इस्तेमाल किया जाता है?
- 23. पता कैसे लगाएं कि दृश्य की मूल गतिविधि को नष्ट किया जा रहा है
- 24. मुझे कैसे पता चलेगा कि डब्ल्यूपीएफ
- 25. मुझे कैसे पता चलेगा कि पेपैल साइट
- 26. आईफोन कैसे पता चलेगा कि ब्लूटूथ हेडसेट
- 27. स्क्रीन को किस तरह से रखते हुए, किस तरह से?
- 28. पेज कैसे पता चलेगा कि मैं फ़ायरबग
- 29. स्क्रॉलव्यू पूरी तरह से नीचे स्क्रॉल नहीं कर रहा है
- 30. मुझे कैसे पता चलेगा कि ScalaQuery
नमस्कार मैं मदद की जरूरत है इस लक्ष्य को हासिल करने के लिए। आप self.lastContent ऑफ़सेट कहां सेट करते हैं? धन्यवाद :) – veereev
हाय बस अपने स्क्रॉल प्रतिनिधि वर्ग में एक संपत्ति को परिभाषित करें। @property (असाइन, nonatomic) CGPoint lastContentOffset; – citydeer
भयानक उत्तर फ़्लिपिंग, धन्यवाद @ citydeer :) – Supertecnoboff