嗨,有可能得到tableview滾動方向?滾動是向上滾動還是向下滾動?因爲我需要獲取最底層單元格的indexpath.row並將其存儲到一個變量中。是否有可能獲得tableview滾動方向並獲取最底層單元格的索引路徑?
如果不是那麼請給我任何建議我該怎麼做?
嗨,有可能得到tableview滾動方向?滾動是向上滾動還是向下滾動?因爲我需要獲取最底層單元格的indexpath.row並將其存儲到一個變量中。是否有可能獲得tableview滾動方向並獲取最底層單元格的索引路徑?
如果不是那麼請給我任何建議我該怎麼做?
是的,你可以確認到協議的UITableViewDelegate和實施-scrollViewDidScroll方法。每當用戶滾動tableView時調用此方法。
此外,您可以檢查scrollView的contentOffset並將其與最後一個進行比較。
@property (assign, nonatomic) CGFlaot lastContentOffset
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
if (scrollView.contentOffset.y > self.lastContentOffset.y) {
// Scroll down direction
} else {
// Scroll to up
}
self.lastContentOffset = currentOffset;
}
而且不要忘記設置tableViewDelegate
self.tableView.delegate = self;
讓您的班級成爲tableview的代表,然後覆蓋scrollViewDidScroll
。
你必須保持跟蹤自己以前的滾動位置的,但你可以做到這一點通過查詢滾動視圖的內容偏移:Get the current UIScrollView scroll values on the iPhone?
如果你想知道的是滾動視圖中或上下移動,你可以使用這個
func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
let translation = scrollView.panGestureRecognizer.translation(in: scrollView.superview!)
if translation.y > 0 {
print("scrolling down")
} else {
print("scrolling up")
}
}
記得設置您的視圖控制器中的scrollView.delegate = self
。
是的,這是可能的!由於tableView
從scrollView
繼承,因此您可以使用UIScrollViewDelegate
。
UIScrollViewDelegate
。scrollViewShouldScrollToTop
,scrollViewDidScroll
。現在你可以跟蹤通過對比tableView
的委託功能的X - Position
示例實現您的tableView
的移動:
func scrollViewDidScroll(_ scrollView: UIScrollView)
{
if scrollView == tableView // incase you have multiple scrollViews
{
print(scrollView.contentOffset.x)
}
}
這麼簡單,如下。
-(void)scrollViewWillEndDragging:(UIScrollView *)scrollView
withVelocity:(CGPoint)velocity
targetContentOffset:(inout CGPoint *)targetContentOffset{
if (velocity.y > 0){
NSLog(@"scrolling up");
}
if (velocity.y < 0){
NSLog(@"scrolling down");
}
}