質問

あなたが親指を設定し、画像を追跡することができ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

カスタムを行います。あなたが欲しいものをカスタマイズによって異なります。あなたは次のように、あなたのUIsliderをカスタマイズするために設定することができ、デフォルトのプロパティがあります。 setThumbImage:forState: setMinimumTrackImage:forState: setMaximumTrackImage:forState: あなたはさらにカスタマイズしたい場合は、下記のリンクを参照することができます https://medium.com/@0209neha/creating-a -custom-uislider-7756bf898832#.o1l4qhymoする https://github.com/0209Neha/ExploringSliderする

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top