すぐには不可能に思えるので、ちょっと興味があるのですが、サブクラスUIRefreshControl
を使用せずに新しい iOS 6 クラスを活用する巧妙な方法はあるのでしょうかUITableViewController
?
私は、 を直接使用するのではなく、サブビューUIViewController
で を使用し、UITableView
に準拠することがよくあります。UITableViewDataSource
UITableViewDelegate
UITableViewController
ベストアンサー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;