見てUISliderのカスタマイズ
-
09-09-2019 - |
質問
あなたが親指を設定し、画像を追跡することができUISliderの視覚的な外観をカスタマイズするには。トラックの画像の一部はで適切に伸ばします。ドキュメントから:
伸縮性領域は、2つの間に位置します エンドキャップ領域。エンドキャップを定義します 残っている画像の部分 で延伸されていないよう。ザ・ 伸縮性領域は、1点の幅であります することができ、エンドキャップとの間の領域 画像を表示させるために複製 長います。
今、私が持っている問題は、私の伸縮領域がより1点ワイドにする必要があるということです。残念ながら、1点の幅は、ハードSDKでコード化しているようだ(それはパターンです)。
どのようにこれを回避するにはアイデアを持つ誰ですか?それとも私はこのためにゼロから自分のスライダーを記述する必要がありますか?
解決
私はあなたがそれを行うには、独自のスライダーを記述する必要があります信じています。伸縮領域に関するUISliderの動作を変更する(パブリック)APIはないように思われます。
他のヒント
ただ、トラックの画像のような透明な画像を使用して、下のUIImageViewを置く:)
私はそれが後半の答えを知っている。
しかし、私は次のような問題を解決します:
図4は、PNGファイル内のラウンドキャップの幅である。
UIImage *minimum = [UIImage imageNamed:@"slider_minimum.png"];
[slider setMinimumTrackImage:[minimum stretchableImageWithLeftCapWidth:4 topCapHeight:0]
forState:UIControlStateNormal];
あなたはあなたがそれらをパターンプリレンダリングして、する必要がありますと同じ幅であることを、画像を作成することができます。
あなたはstretchableImageWithLeftCapWidthであなたのイメージを初期化する必要があります。topCapHeightを:. leftCapWidthとtopCapHeightは、画像オブジェクトの読み取り専用プロパティですが、その機能を使用すると、あなたはそれらを設定することができます。左右のキャップは同じサイズなので、あなただけの左と上を設定し、トップとボトムも同じです。 、左キャップのための5トラックのために引き伸ばされ1つのピクセル幅のを:だから、5つのピクセルの左側のサイズとカスタムスライダートラックを使用するには、何が必要高さ、幅の広い11個のピクセルの画像を持っている必要があります右用と5以上。それをプレイしていないた、0作品よりも大きいtopCapHeightを使用した場合、予想通り、私は知らないが、私はそれは問題の多くを起こさない疑います。
私は私のUISliderの背後にあるパターンを望んでいました。私はnilに、両方の画像を設定すると、私は親指の両側に異なるように、それを必要としなかったので、スライダーの下にビューを追加することになりました。これは、位置に基づいて、それを変更する必要がある場合、より困難が、非常になんとかなります。
カスタムを行います。あなたが欲しいものをカスタマイズによって異なります。あなたは次のように、あなたのUIsliderをカスタマイズするために設定することができ、デフォルトのプロパティがあります。 setThumbImage:forState: setMinimumTrackImage:forState: setMaximumTrackImage:forState: あなたはさらにカスタマイズしたい場合は、下記のリンクを参照することができます https://medium.com/@0209neha/creating-a -custom-uislider-7756bf898832#.o1l4qhymoする https://github.com/0209Neha/ExploringSliderする