2017-05-22 9 views
1

flashscrollIndicatorを正しく使用する方法を発見しましたが、点滅するときにスクロールの色を変更できません。私は赤に変えたい。これはviewTable負荷がアップするとき、私はスクロールバーを点滅する私の機能のために持っているものです。SwiftでflashScrollIndicator()を呼び出すときにスクロールバーの色を変更する方法3

override func viewDidAppear(_ animated: Bool) { 
    override func viewDidAppear(_ animated: Bool) { 
    super.viewDidAppear(animated) 
    self.tableView.flashScrollIndicators() 
} 

私も実際にスクロールバーを変更する関数を作成することができたが、ときにのみ、ユーザーが実際にスクロールし、ないときスクロール単に点滅します。任意の助けがあれば、これはそれのためのコードです:

func scrollViewDidScroll(_ scrollView: UIScrollView) { 
    let verticalIndicator = scrollView.subviews.last as? UIImageView 
    verticalIndicator?.backgroundColor = UIColor.red 
} 

助けが素晴らしいでしょう!ありがとう。

答えて

1

これらの2つの部分をまとめておくだけです。色変更コードをviewDidAppearに追加すると、scrollViewDidScrollと同じように機能します。

override func viewDidAppear(_ animated: Bool) { 
    let verticalIndicator = tableView.subviews.last as? UIImageView 
    verticalIndicator?.backgroundColor = UIColor.red 
    self.tableView.flashScrollIndicators() 
} 

これは可能ではあるが、私はいくつかの理由のためにそれをお勧めしません:

  1. それは壊れやすいです。これはすぐに利用できるパブリックAPIではないので、将来のiOSバージョンではこれが動作するという保証はありません。

  2. おそらくデザインの選択肢が悪いです。別の色のスクロールバーにユーザーの注意を向けたいのですか?他のアプリに精通しているほとんどのユーザーは、スクロールバーのデフォルトの外観に慣れているため、特に注意を払わずにビュー内の位置を伝えます。私はちょうどそれを試したときにも、それはとても素敵に見えません。

別の解決策は、単に利用可能なオプション(defaultwhite、又はblack)のいずれかにスクロール・インジケータ・スタイルを設定することです。

tableView.indicatorStyle = .default 
+0

ありがとう、私は間違いなくあなたが言っていることを見ていきます – tee

関連する問題