UITableViewController なしの UIRefreshControl 質問する

UITableViewController なしの UIRefreshControl 質問する

すぐには不可能に思えるので、ちょっと興味があるのですが、サブクラスUIRefreshControlを使用せずに新しい iOS 6 クラスを活用する巧妙な方法はあるのでしょうかUITableViewController?

私は、 を直接使用するのではなく、サブビューUIViewControllerで を使用し、UITableViewに準拠することがよくあります。UITableViewDataSourceUITableViewDelegateUITableViewController

ベストアンサー1

直感と DrummerB のインスピレーションに基づいて、UIRefreshControlインスタンスをサブビューとして に追加してみましたUITableView。すると、魔法のようにうまくいきました。

UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
[refreshControl addTarget:self action:@selector(handleRefresh:) forControlEvents:UIControlEventValueChanged];
[self.myTableView addSubview:refreshControl];

これにより、UIRefreshControlテーブルの上にビューが追加され、UITableViewController:)を使用しなくても期待どおりに機能します。


編集: 上記の方法は今でも機能しますが、何人かが指摘しているように、この方法で UIRefreshControl を追加すると、若干の「スタッター」が発生します。これを解決するには、UITableViewController をインスタンス化し、UIRefreshControl と UITableView をそれに設定します。つまり、次のようになります。

UITableViewController *tableViewController = [[UITableViewController alloc] init];
tableViewController.tableView = self.myTableView;

self.refreshControl = [[UIRefreshControl alloc] init];
[self.refreshControl addTarget:self action:@selector(getConnections) forControlEvents:UIControlEventValueChanged];
tableViewController.refreshControl = self.refreshControl;

おすすめ記事