4

selected rowを に設定したいと思いUITableViewますrefresh control。これを行っているのは、 の上部に更新コントロールUITableViewがあり、データをロードしているとき (そして、データをプルダウンして実際にそれを引き起こしたわけではない)、 をactivity indicator view表示したい (それはの一部です) refresh control)。

今、私がしているのはrefresh control、「リフレッシュ状態」に設定することです(回転アクティビティインジケータがあります)。

[self.refreshControl beginRefreshing];

これはうまく機能しますが、唯一の問題は、行 1 (インデックス 0) のデフォルト値であるため、プルアップしない限り表示されないため、非表示になっていることです。

注:これが発生している間、アイテムは 0 です (常にそうなるでしょう) UITableView

たとえば、私が行った場合:

[self.tableView selectRowAtIndexPath:0 animated:YES scrollPosition:UITableViewScrollPositionTop];

選択した項目の位置を最初の行に設定しますが、更新コントロールを表示したいので、おそらく次のようにします:

[self.tableView selectRowAtIndexPath:-1 animated:YES scrollPosition:UITableViewScrollPositionTop];

(最初の項目の下の 1 つのインデックスであるため) は機能しますが、もちろん、それはコンパイラではありません。

4

1 に答える 1

2

UITableView は UIScrollView のサブクラスであるため、tableView の contentOffset を設定することで、最初の行の上に更新コントローラーを表示できます。たとえば、更新コントロールの高さが 100 の場合、更新コントロールをアニメーション化して表示できます。

[self.tableView setContentOffset:CGPointMake(0, -100) animated:YES];

または、アニメーションなしで単純に表示するか、独自のアニメーションを実装するには:

self.tableView.contentOffest = CGPointMake(0, -100);

リフレッシュが完了し、コントロールを非表示にしたい場合は、0 に戻すことができます。

ドキュメントリンクはこちら

于 2013-02-17T15:05:15.757 に答える