2017-10-08 4 views
0

期待どおりに動作しませんUISlider画像と色合いを変更する:スウィフト、私は私のViewControllerでスライダーを持って

@IBOutlet weak var timeSlider: UISlider! 

コードを使用して:

timeSlider.setMinimumTrackImage(#imageLiteral(resourceName: "track"), for: .normal) 
timeSlider.setMaximumTrackImage(#imageLiteral(resourceName: "track"), for: .normal) 
timeSlider.setThumbImage(#imageLiteral(resourceName: "thumb2"), for: .normal) 

私のスライダは次のようになります。

enter image description here

これは動作が期待されるように大きく動作します。

親指の前に色を変え、後に色を変えたいと思っています。そのため、私は自分の視点で使用した画像から新しい画像をテンプレート(テンプレートは配列)に作成する関数を作成しました。 [5] [6](どの画像 "thumb2"

テンプレート[6] = "トラック"

した後、私はテンプレートを割り当てたいと思ったと同じ画像である

func setTemplates(){ 
     templates.removeAll() 
     for i in 0 ..< 10{ 
      templates.append(playImg[i].withRenderingMode(.alwaysTemplate)) 
     } 
    } 

テンプレート"トラック"をテンプレートに変換したもの)と同じ方法で色付けします他の画像をボタンのように表示したり、以下のようにカラーラベルなどに置き換えます。

colorsは4種類の色を持つ構造体です。しかし、あなたはそれがイメージ親指が1をデフォルトに設定されている適切

enter image description here

私は0.0の位置に親指を動かすことができないとして、それも正常に動作しない動作しません見ることができるようにスライダを移動した後、または色が変化した後、親の後の部分は青色になり、スライダのデフォルトになります。

enter image description here

私はこの問題を戦うためにさまざまな方法を試してみましたが、これは私が正常に動作しにそれを得た最も近いです。この時点で、バグだと思っていますが、私のコードで間違いを犯した可能性があります。私が言ったように私は私が

ここ

button.setImage(templates[7], forState: .normal) 
button.tintColor = colors.primaryColor 
を試してみましたが、それは 私が間違って何をやっているの作品と同じように色をボタン、ラベルを持っていますか?​​のドキュメントから

答えて

0

このプロパティを設定するには、戻って、スライダのデフォルトの画像に親指イメージをリセットします。任意のカスタムイメージがスライダによって解放されます。このプロパティをnilに設定すると、色合いの色がデフォルトにリセットされ、カスタムのサム画像がすべて削除されます。

2つのトラックの色合いと同じです。

カスタム画像が必要な場合は、色合いを設定せずにカスタム画像を設定するだけです。

つまり、カスタム画像を設定するか、色合いを設定します。両方を設定しないでください。

+0

色合いが画面上に表示される画像に動的に一致するため、実際には私の問題は解決しません。 – Adam

+0

カスタムスライダ画像の色合いを変更するには、画像の色合いを変更してから、カスタム画像。カスタムイメージとスライダの色合いの両方を設定する方法はありません。 – rmaddy

関連する問題