UIViewController内のUITableViewでプル・トゥ・リフレッシュ機能を実装しようとしています。私はUITableViewをビューコントローラの中でより小さなサブビューにしたいので、UITableViewControllerを使用することはできません。私はこれが可能だと仮定しますが、それを誰も見ていますか?UITableViewを使わずにUITableViewをリフレッシュするには
答えて
はUITableViewController
を使用せずに直接UITableView
にリフレッシュ制御を追加します。
override func viewDidLoad() {
super.viewDidLoad()
let refreshControl = UIRefreshControl()
refreshControl.addTarget(self, action: #selector(refresh(_:)), for: .valueChanged)
if #available(iOS 10.0, *) {
tableView.refreshControl = refreshControl
} else {
tableView.backgroundView = refreshControl
}
}
@objc func refresh(_ refreshControl: UIRefreshControl) {
// Do your job, when done:
refreshControl.endRefreshing()
}
UIViewControllerとシンプルなテーブルビューでEGORefreshTableHeaderViewを実装しました。スクロールビューから継承するテーブルビューを見れば、EGOがスクロールビューをパラメータとする場所でのトリックとなります。
これだけで、いくつかの余分な接続が必要です。
希望します。
をあなたがのViewControllerのloadViewメソッドメソッド内UIRefreshControlを作成する場合、すべてが正常に動作しているようです。 UIRefreshControlは必要に応じて動作します。 iOS 7.1とiOS 8.2でテスト済み
@berikのこのソリューションは正常に動作しますが、UIControllerはUITableViewControllerの上に表示されます。それがこの変更を行っている修正する方法:
override func viewDidLoad() {
let refreshControl = UIRefreshControl()
refreshControl.addTarget(self, action: "refresh:", forControlEvents: .ValueChanged)
tableView.backgroundView = refreshControl // <- THIS!!!
}
func refresh(refreshControl: UIRefreshControl) {
// Do your job, when done:
refreshControl.endRefreshing()
}
refreshControlは私のためにtableViewの上に表示されますが、あなたの提案は' refreshControl'を消してしまい、 'tableView'の下には表示されません。私はこれを修正しました:tableView.addSubview(refreshControl)の代わりにtableView.insertSubview(refreshControl、atIndex:0) – kbpontius
のObjective-C:
これは、テーブルビューのためにリフレッシュするためにプルを実装することができる方法です。 コレクションビューの場合と同じです。テーブルビューのallocをコレクションビューに置き換えるだけです。
UITableView *tableViewDemo = [[UITableView alloc]init];
tableViewDemo.frame = CGRectMake(0,0,self.view.frame.size.width,self.view.frame.size.height);
tableViewDemo.dataSource = self;
tableViewDemo.delegate = self;
[self.view addSubView: tableViewDemo];
UIRefreshControl *refreshController = [[UIRefreshControl alloc] init];
[refreshController addTarget:self action:@selector(handleRefresh:) forControlEvents:UIControlEventValueChanged];
[tableViewDemo addSubview:refreshController];
#pragma mark - Handle Refresh Method
-(void)handleRefresh : (id)sender
{
NSLog (@"Pull To Refresh Method Called");
[refreshController endRefreshing];
}
スピーディーバージョンが> 430の場合、obj-cバージョンは9アップフォートしか持っていませんか? –
@ChaseRoberts、その1つは2月13日に返事があった、編集履歴を見て、もともとは客観的な - cであった、その時迅速なものだったので、誰もが迅速なバージョンを探していた... https:/ /stackoverflow.com/posts/15010646/revisions – Irfan
私はODRefreshControlで終了しました。 上記のようなハックは必要ありません。ほぼ同じ方法で動作し、より見た目の良いUIを提供します。
- 1. UITableViewをリフレッシュする
- 2. UITableViewでカスタムセルを使わずにボタンを追加する方法は?
- 3. リフレッシュのUITableView原因EXC_BAD_ACCESSエラー
- 4. 頻繁に変化するNSArrayからUItableViewデータをリフレッシュ
- 5. ストーリーボードを使用せずにスタティックセルをUITableViewで使用する方法は?
- 6. Objective-C - ユーザーに気づかずにUITableViewをリロードする
- 7. 編集せずにUITableviewにカスタムセルを追加する
- 8. UITableViewはストーリーボードを使用してUITableViewをドリルダウンします
- 9. NSDictionaryをUITableViewにロードする
- 10. プルテーブルビューを追加してuitableview内のデータをリフレッシュする方法
- 11. uitableviewにナビゲーションバーを追加するには
- 12. 異なる数の行を持つ1つのセクションにUITableviewをリフレッシュする
- 13. UITableViewカスタムセルをリフレッシュするときの遅延
- 14. UISegmentedControlとUITableViewの組み合わせにPizzazを追加する
- 15. UITableViewのタイトル/ヘッダーをロックするには
- 16. UITableViewセルアルファを設定するには?
- 17. iphoneでUITableViewを更新するには?
- 18. UITableView:インデックスを削除するには?
- 19. uibuttonでuitableviewを表示するには?
- 20. UITableView - UITableViewの右側のセクションに配列を割り当てる
- 21. UITableViewに追加
- 22. iOS - UITableViewの表を正しくリフレッシュできますか?
- 23. UITableViewをリロードする
- 24. UITableViewをドラッグする
- 25. UITableViewCellの長さをUITableViewの長さに合わせる
- 26. UITableViewセルに合わせて画像のサイズを変更するには?
- 27. UITableViewで 'double select'を避けるには?
- 28. UITableViewは常に2147483647を返します
- 29. UITableViewを使用したUIPopoverController
- 30. UITableViewを使用したUIPageControl
ありがとう、私はUIRefreshControlが新しいと信じています。私はこれが今これを行うための最善の方法だと思う。 –
このソリューションはiOS7 beta 1でも動作します – Berik
したがって、refreshControlは基本的にUITableViewのヘッダーになりますか? –