3

UITableViewに問題があります。次の場合、スクロールインジケーターは非表示になりません。

1)高速スクロール

2)次に、テーブルの上部または下部を叩きます。

これがスクリーンショットです。

継続的に表示されるスクロールバーのスクリーンショット

スクロールインジケーターが期待どおりに正しく非表示になっていることを確認するにはどうすればよいですか?

バウンスがオフになっていることに注意してください。また、スクロールインジケーターを非表示にするだけでなく、スクロールが上または下で停止したときに期待どおりに非表示にしたいだけです。

編集:この問題は、ViewControllerの設定automaticallyAdjustsScrollViewInsetsをに設定したことが原因のようfalseです。問題を再現するには、次の3つの設定が必要なようです。

1)テーブルビューのバウンスをオフにする必要があります

2)ビューコントローラの設定(これは、スクロールインジケータがまったく正しく表示されない別の問題を修正するためですautomaticallyAdjustsScrollViewInsetsfalse

3)UIViewController自体のビューはテーブルビューであってはならず、テーブルビューはサブビューである必要があります。

そのviewDidLoad中で次のようになります:

self.view_table = [[UITableView alloc] initWithFrame:self.view.frame];
self.view_table.bounces = false;
self.automaticallyAdjustsScrollViewInsets = false;

また、テーブルビューのコンテンツは、フレームの高さよりも大きくする必要があります。

4

5 に答える 5

9

UITableViewはUIScrollViewを継承するため、UIScrollViewのプロパティを使用する必要があります。

Property: showsVerticalScrollIndicator
A Boolean value that controls whether the vertical scroll indicator is visible.

ドキュメントを見てください。

于 2012-10-28T17:57:53.913 に答える
3

これを試して :

-(void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset{
    if (!scrollView.bounces) {
        targetContentOffset->y = -1;//Scrollbar does not move here, because bounces is disabled, but scrollbar can hidden.
    }
}
于 2013-09-02T13:32:38.817 に答える
2

次の手順を実行します。

  1. XIBに移動します
  2. それぞれのテーブルを選択します
  3. [プロパティ]に移動し、水平および垂直スクローラーを無効にします。
于 2012-10-28T17:52:57.103 に答える