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

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

More than 1 year has 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のタップエリアを拡大する実装で利用したくて書いてみました。こちらの記事も合わせて見ていただけると嬉しいです。

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

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

Why do not you register as a user and use Qiita more conveniently?
  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
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  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