2017-08-07 27 views
1

我有一個scrollView(從自定義UITableView()分類),它具有行數和列數,並在水平和垂直方向上滾動。我有當按下浮動的操作按鈕動態添加數據到滾動視圖。當按下浮動動作按鈕時動態地將數據添加到表格

更新:我能夠以行和列成功顯示動態數據。但是我不想在滾動時加載所有動態數據的scrollView,因爲數據太大而無法處理。相反,我最初只顯示5列,當用戶按下浮動操作按鈕,數據應該會得到5列和「X」行數加到行和列的動態試。

我被困在浮動操作按鈕被按下時,將動態數據滾動視圖。另外,如何在最初顯示5列時按下浮動操作按鈕時添加更多5 * n列。

任何建議或幫助是非常讚賞。謝謝:)

回答

0

我建議使用具有內置的水平滾動支持,而不是一個自定義TableView中一的CollectionView。

對於「浮動作按鈕」我建議創建一個具有一個標籤,告訴用戶釋放加載在用戶到達滾動視圖月底在更多的項目和移動一個單獨的視圖。在以下示例中,加載更多視圖的寬度爲100px,並建議用戶在拖動視圖85px後釋放他的手指。

夫特3

@IBOutlet fileprivate weak var loadMoreView: UIView! 
@IBOutlet fileprivate weak var loadMoreLabel: UILabel! 
@IBOutlet fileprivate weak var loadMoreConstraint: NSLayoutConstraint! 

func scrollViewDidScroll(_ scrollView: UIScrollView) { 
    if scrollView.contentOffset.x + scrollView.frame.size.width > scrollView.contentSize.width { 
     loadMoreView.isHidden = false 
     loadMoreLabel.text = "Load more" 
     if (scrollView.contentOffset.x + scrollView.frame.size.width) - scrollView.contentSize.width > 85 { 
      loadMoreLabel.text = "Release" 
     } 

     if (scrollView.contentOffset.x + scrollView.frame.size.width) - scrollView.contentSize.width < 100 { 
      loadMoreConstraint.constant = 100 - ((scrollView.contentOffset.x + scrollView.frame.size.width) - scrollView.contentSize.width) 
     } 
    } else { 
     loadMoreView.isHidden = true 
     loadMoreConstraint.constant = 100 
    } 
} 

func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) { 
    if scrollView.contentOffset.x + scrollView.frame.size.width > scrollView.contentSize.width { 
     if (scrollView.contentOffset.x + scrollView.frame.size.width) - scrollView.contentSize.width > 85 { 
      // TODO: <Load more logic here> 
     } 
    } 
} 

負載更視圖具有以下限制,這裏的「對齊尾隨」約束與loadMoreConstraint IBOutlet中在上面的代碼聯繫起來。

enter image description here

+0

我沒有鎖定scrollView部件。謝謝。只有動作按鈕按下功能沒有完成。我無法重新加載點擊浮動按鈕上的數據......而是刷新數據 –