Help us understand the problem. What is going on with this article?

UISliderのThumbの表示領域(SizeやFrame)を計算するExtension

More than 3 years have passed since last update.

はじめに

こんにちは:leaves:
Apple UIKit UISliderからの引用
UISlider
UISliderの「Thumb」「Track」の矩形が欲しくなり、色々調べてたのですが、
なかなか見つからずに困っていました。今回はそのExtensionを書いてみたので共有したいと思います。
至らぬ点などコメント頂けたら幸いです。

サンプル

ThumbFrameBoundsが取得できることで、Thumbに合わせてViewなどの部品などを動かしたりすることができます。
Thumbにオリジナルの画像を設定してもその矩形を取得することができています。

Slider.gif

ソースコード

import UIKit

extension UISlider {

    var trackBounds: CGRect {
        return trackRect(forBounds: bounds)
    }

    var trackFrame: CGRect {
        guard let superView = superview else { return CGRect.zero }
        return self.convert(trackBounds, to: superView)
    }

    var thumbBounds: CGRect {
        return thumbRect(forBounds: frame, trackRect: trackBounds, value: value)
    }

    var thumbFrame: CGRect {
        return thumbRect(forBounds: bounds, trackRect: trackFrame, value: value)
    }
}

さいごに

※ UISliderは設定画面などアプリを開発するにあたって、そんなに利用頻度は少ないかもしれないのですが、気になっていた事を今回調べる事ができたので良かったです。

※ この矩形計算はIB上で範囲の確認ができるUISliderのタップエリアを拡大する実装で利用したくて書いてみました。こちらの記事も合わせて見ていただけると嬉しいです。

参考にさせていただいた記事

見て頂いてありがとうございます。

KikurageChan
見て頂いてありがとうございます。
https://kikuragechan.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away