こんにちは私はアンドロイドに実装された希望のスタイルのUISliderを持っています。 カスタムUISlider iOSを作成するには?
実装するのは簡単な作業ではありませんでした。今私はiOSの同じスライダーが必要です。すべてのスライダを最初から描画しないという解決策があるのだろうか?または任意の助言。ありがとうございました。
こんにちは私はアンドロイドに実装された希望のスタイルのUISliderを持っています。 カスタムUISlider iOSを作成するには?
実装するのは簡単な作業ではありませんでした。今私はiOSの同じスライダーが必要です。すべてのスライダを最初から描画しないという解決策があるのだろうか?または任意の助言。ありがとうございました。
ビットのを実行する必要がありますが、最初から完全なソリューションを構築する必要はありません。
ラベルを追加すると、些細なことだろう - あなたのアニメーション番組としてUISlider
のかなり基本的な使い方トラック画像(または色合いの色)を「ストレッチ」左と中央の右側には、UISlider
コントロールとして、少しトリッキーになりますトラック/背景画像と、左側に伸びる「現在の」画像のみを有する。
UISlider
トラックイメージを透明または非表示に設定し、スライダを「フルライン」と「ブルーライン」の上に重ねることが1つの方法です。スライダの値が変化すると(ドラッグされたとき)、青い線のフレームを変更します。
自動レイアウトと制約を使用すると、かなり簡単になります。
編集:本当に簡単な例です。 「サムは、」意図的に...画像を表示するには、「カスタムスライダバー」の下に
を移動させて、これがその取得するためのコードです:
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イメージを設定することもできます。
グーグル「カスタムUISlider」。これを得ました:https://alexanderbatalov.com/journal/2015/2/20/how-to-implement-custom-uislider-in-swift – redent84
@ redent84あなたはその投稿を読んでいますか?彼は親指だけを – Mikhail