16

TableViewControllerに奇妙な問題があります。ドキュメントでは、テーブルが「特大」の場合、tableViewControllerはメソッド-flashScrollIndicatorsも処理し、表示領域を尊重すると述べています。

私のアプリは、タブコントローラーにロードされた3つのナビゲーションコントローラーで構成されています。各navコントローラーには、ルートビューコントローラーとしてテーブルビューコントローラーのサブクラスがあります。各「モデル」はplistファイルから入力され、その内容が-viewDIdLoadの配列にロードされ、後ですべてがテーブルに渡されます。すべてがプログラムでロードされ、IBはありません。

私のアプリで、最初のビュー(ルートとしてテーブルビューコントローラーを備えたナビゲーションコントローラー)をロードすると、セルの数が十分であってもスクロールバーが点滅しないことがわかりました。別のタブを選択すると、別のnavコントローラー(ルートとしてtvcを使用)が読み込まれ、スクロールバーが再度表示されません。ロードされた最初のナビゲーションコントローラーに対応するタブを押すと、スクロールバーが点滅します。

だから私はそれをプログラムでフラッシュさせようとしましたが、方法はありません、コードは単純に見えます:

[self.tableView flashScrollIndicators];

ほとんどどこにでも配置しようとしました。最初に-viewDidLoad(ドキュメントで提案されているように)で、次にviewDidAppearと-viewWillAppearで。また、そのコードtringを使用して、tvcのビューをテーブルビューとしてキャストしてみました。

[((UITableView*)self.view) flashScrollIndicators];

..結果なし。

私はAppleのサンプルを見始めましたが、Appleのテーブルビューのカスタムサンプル(時間の異なるもの)では、スクロールバーがそこでも点滅しないことがわかりました。simとデバイスの両方でテストされています。

バグですか?プログラムで表示する正しい方法はありますか?誰かが私を助けることができますか?よろしく、アンドレア

4

4 に答える 4

41

またはもっと簡潔に:

- (void)viewDidAppear:(BOOL)animated {
  [super viewDidAppear:animated];
  [self.tableView performSelector:@selector(flashScrollIndicators) withObject:nil afterDelay:0];
}
于 2010-12-09T13:33:11.813 に答える
12

私はまったく同じ問題を抱えていました。結局、メソッドに遅延セレクターを入れることでそれを回避しましたviewDidAppear:。奇妙なことに、0秒に設定しても問題なく動作します。

- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];

    [self performSelector:@selector(flashTableScrollIndicators) withObject:nil afterDelay:0.0];
}

- (void)flashTableScrollIndicators
{
    [self.tableView flashScrollIndicators];
}
于 2010-08-18T17:04:35.623 に答える
3

セクションインデックスのタイトルを表示する場合は表示されません。

- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView; 
于 2013-05-07T14:50:08.927 に答える
0

私の解決策は、「dispatch_after」を使用して少し遅れて「flashScrollIndicators()」メッセージを送信することでした。

let delayTime = dispatch_time(DISPATCH_TIME_NOW, Int64(0.4 * Double(NSEC_PER_SEC)))

dispatch_after(delayTime, dispatch_get_main_queue(), 
{ () -> Void in 
    myScrollView.flashScrollIndicators() 
})
于 2014-12-30T02:43:27.353 に答える