2017-08-07 14 views
1

私はscrollView(カスタムUITableView()からサブクラス化されています)に行と列の数があり、水平方向と垂直方向にスクロールしています。私はフローティング操作ボタンが押されたときに動的に scrollViewにデータを追加する必要があります。フローティングアクションボタンが押されたときにテーブルにデータを動的に追加

UPDATED:動的データを行と列で正常に表示できました。しかし、スクロール時にすべての動的データをスクロールビューにロードしたくないのは、データが大きすぎて処理できないためです。代わりに、私は最初に5列だけを表示しなければならず、ユーザが浮動アクションボタンを押したとき、データは5列と 'x'行のカウントで動的に列と列に動的に追加されます。

Iは、フローティングアクションボタンが押されたときにscrollViewに動的データを追加することで立ち往生しています。また、最初に5列だけを表示し、浮動アクションボタンが押されたときに5 * n列を追加する方法もあります。

ご意見やご協力をいただければ幸いです。ありがとう:)私はビルドに横スクロールのサポートの代わりに、カスタムテーブルビュー持つCollectionViewを使用することをお勧め

答えて

0

。私は、ユーザーがscrollViewの終わりに到達したときに多くの項目および移動をロードするために解放するために、ユーザに指示ラベルを持つ別のビューを作成することをお勧めし「フローティング操作ボタン」の場合

。次の例では、より多くのビューをロードすると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部分をロックしました。ありがとうございました。アクション・ボタン・プレス機能のみが実行されません。フローティングボタンをクリックしてデータをリロードすることができません...代わりにデータがリフレッシュされます –

関連する問題