2017-03-31 8 views
0

画像を使用してカスタムuisliderを実行しようとしています(ノブは表示されません。ユーザーが編集できない場合は非表示にします)。サイドは完全にレンダリングされますが、右の部分はかわいいですし、エッジを使用していないようです... どのように私はそれを編集できますか?UIEdgedInsetを使用したカスタムUISliderがうまくレンダリングされない

実際のコード:

let capLeft:CGFloat = 9 
    let capRight:CGFloat = 9 
    imageMin = imageMinimum?.resizableImage(withCapInsets: UIEdgeInsets(top: 0, left: capLeft, bottom: 0, right: capRight), resizingMode: .stretch) 
    imageMax = imageMaximum 
    slider.setMaximumTrackImage(imageMax, for: UIControlState()) 
    slider.setMinimumTrackImage(imageMin, for: UIControlState()) 

それはどのようにレンダリングだ: bad slider rendering

は、それがレンダリングされる方法: good Rendering

最小トラック画像: enter image description here

最大トラッキング画像:を

ご存知ですか?

+0

色を気にしないでください、それは重要な形です –

+0

hmmm ...親指のイメージはありますか?また、スライダの値が100%に設定されている場合、全長イメージが正しく表示されますか? – DonMag

+0

100%でよく見えません。 と私は本当に隠すためにそこにそれを使用することはできませんので、たくさんの親指を使用するカバー) –

答えて

0

私はUISliderでMinおよびMax画像について少し混乱していると思います。

サム画像は、サムネイルの左側で描画されます(そして伸ばされます)。サム画像の右側に最大画像が描画されます(そして伸ばされます)。

小さな正方形の赤いイメージ(16x16など)を作成し、それを(インセットなしで).setMaximumTrackImageに割り当てます。あなたが低い値から高い値に行くと、それがどのように見えるかを見てください。

編集:私はこの例では最低の画像にはインセットを使用していない...

enter image description here enter image description here

注:私はこれらのキャップで親指のために20×20鮮明な画像を使用していました。

+0

ぼくは羽ばたっていた、私は黒から灰色を分離するだろうが、それはなぜエッジが "カット"されているのか説明していない –

関連する問題