k06a's answer के साथ शुरू, मैं यह थोड़ा परिष्कृत तो यह अधिक वास्तविक पृष्ठवार UITableView की तरह काम करता है। व्यवहार में मतभेद पूर्ण स्क्रीन तालिका पंक्तियों के साथ काफी ध्यान देने योग्य हैं। यहां तक कि किसी भी दिशा में एक मिनी-फ़्लिक को तालिका को अगले पृष्ठ पर स्क्रॉल करना चाहिए: मैं पहले वेग की जांच करके ऐसा करता हूं।
- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView
withVelocity:(CGPoint)velocity
targetContentOffset:(inout CGPoint *)targetContentOffset
{
CGFloat rowHeight = tableView.rowHeight;
int verticalOffset = ((int)targetContentOffset->y % (int)rowHeight);
if (velocity.y < 0)
{
targetContentOffset->y -= verticalOffset;
}
else if (velocity.y > 0)
{
targetContentOffset->y += (rowHeight - verticalOffset);
}
// No velocity, snap to closest page
else
{
if (verticalOffset < rowHeight/2)
{
targetContentOffset->y -= verticalOffset;
}
else
{
targetContentOffset->y += (rowHeight - verticalOffset);
}
}
}
ध्यान दें कि अतिरिक्त viewDidLoad:
में
self.tableView.decelerationRate = UIScrollViewDecelerationRateFast;
की स्थापना यह असली चीज़ के करीब है, लेकिन काफी नहीं।
मैं code shown here का उपयोग करके तेज गतिशील दरों को सेट करने के साथ झुका रहा हूं लेकिन मुझे यह सही नहीं मिल सका।
स्रोत
2014-07-08 15:30:11
वास्तव में मेरे लिए काम नहीं करता। इसके अलावा, क्योंकि आप DidEndDecelerating का उपयोग कर रहे हैं, कोड को तब नहीं कहा जाता है जब कोई मंदी नहीं होती है (यानी: यदि तालिका "flicked" नहीं है, लेकिन धीरे से जारी की जाती है) – pixelfreak
तो आपको उसी कोड को जोड़ना चाहिए - (शून्य) scrollViewDidEndDragging :(UIScrollView *) scrollView willDecelerate: (BOOL) को कम करेगा यदि होगा डिस्सेलरेट: (BOOL) decelerate को झूठा – Julien
@ जुलिएन हाँ, मैं दूसरी विधि पेस्ट करना भूल गया। किसी ने इसे एक साल से अधिक समय तक नहीं देखा! Thx – maxcanna