11

呼び出し時に読み込みスピナーが表示されないbeginRefreshing

[self.refreshControl beginRefreshing];

私の UITableViewController サブクラスは UIRefreshControl を使用します

// refresh
    UIRefreshControl * refreshControl = [UIRefreshControl new];
    [refreshControl addTarget:self action:@selector(refreshTableView) forControlEvents:UIControlEventValueChanged];
    self.refreshControl = refreshControl;

ユーザーの操作(ユーザーがテーブルをドロップダウンしたとき)で完全に機能し、スピナーが表示されます。

しかし、beginRefreshingviewDidLoad を呼び出すと、スピナーが表示されません (テーブルを下にドラッグした場合のみ)。

ノート:

  • self.refreshControl 参照は正しい

  • reloadData または endRefreshing は、beginRefreshing の直後には呼び出されませんが、(ネットワーク経由でデータをロードする) 長い遅延があるため、beginRefreshing をキャンセルしていません。

編集: これは、のプロパティが0で、私が呼び出す場合にのみ発生します。バグ?特徴?contentOffsettableView[self.refreshControl beginRefreshing]

4

2 に答える 2

3

あなたの修正は良さそうですが、これはバグではないと思います。

beginRefreshing メソッドを手動で呼び出すと、

利用可能な行/セルがない場合、リフレッシュ コントロールが自動的に表示されるのは理にかなっています。ただし、利用可能なセルがいくつかあり、手動で更新の開始を呼び出す場合 (タイマーに基づいて定期的に更新するシナリオ)、コンテンツ オフセットをアニメーション化/変更しないでください。目に見える細胞。

于 2013-04-29T09:47:31.637 に答える