2017-07-10 13 views
-1

こんにちは私はアンドロイドに実装された希望のスタイルのUISliderを持っています。 enter image description hereカスタムUISlider iOSを作成するには?

実装するのは簡単な作業ではありませんでした。今私はiOSの同じスライダーが必要です。すべてのスライダを最初から描画しないという解決策があるのだろうか?または任意の助言。ありがとうございました。

+0

グーグル「カスタムUISlider」。これを得ました:https://alexanderbatalov.com/journal/2015/2/20/how-to-implement-custom-uislider-in-swift – redent84

+0

@ redent84あなたはその投稿を読んでいますか?彼は親指だけを – Mikhail

答えて

1

ビットのを実行する必要がありますが、最初から完全なソリューションを構築する必要はありません。

ラベルを追加すると、些細なことだろう - あなたのアニメーション番組としてUISlider

のかなり基本的な使い方トラック画像(または色合いの色)を「ストレッチ」左と中央の右側には、UISliderコントロールとして、少しトリッキーになりますトラック/背景画像と、左側に伸びる「現在の」画像のみを有する。

UISliderトラックイメージを透明または非表示に設定し、スライダを「フルライン」と「ブルーライン」の上に重ねることが1つの方法です。スライダの値が変化すると(ドラッグされたとき)、青い線のフレームを変更します。

自動レイアウトと制約を使用すると、かなり簡単になります。

編集:本当に簡単な例です。 「サムは、」意図的に...画像を表示するには、「カスタムスライダバー」の下に

enter image description here

を移動させて、これがその取得するためのコードです:

import UIKit 

class SliderViewController: UIViewController { 

    // @IBOutlets needed, but I'm just showing the "code" here 
    // ... 

    @IBAction func sliderValueChanged(_ sender: Any) { 

     if let s = sender as? UISlider { 
      updateSlider(pct: CGFloat(s.value)) 
     } 

    } 

    func updateSlider(pct: CGFloat) -> Void { 

     let p = (pct - 0.5) * 2.0 

     theValueLabel.text = String(format: "%0.1f", p * 10) 

     leftSideValueWidth.constant = p >= 0.0 ? 0.0 : (leftSideHolderView.frame.size.width * (-p)) 
     rightSideValueWidth.constant = p >= 0.0 ? (rightSideHolderView.frame.size.width * p) : 0.0 

    } 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     // init slider to center 
     updateSlider(pct: 0.5) 

     // set default left- and right-side "track" images to empty images 
     theSlider.setMinimumTrackImage(UIImage(), for: .normal) 
     theSlider.setMaximumTrackImage(UIImage(), for: .normal) 

    } 

} 

ブラックUIViewのためにフレーム...グレーUIViewの "スライダーバー" ... 2つの透明UIView左右のフレーミング用の2つの青UIView - 片側にそれぞれ1つ。コントロールは標準のUISliderです。それはそれです。

デフォルトのThumbイメージが必要以上に大きければ、カスタムThumbイメージを設定することもできます。

+0

に変更したので、私はこれらの黒い画像の下に2つの黒い画像と1つの青い画像が必要ですか? – Mikhail

+0

私の答えの編集を参照してください。 – DonMag

+0

ありがとうございます – Mikhail

関連する問題