【Swift】SegmentとProgressの高さを変更する方法
どうも、ねこきち(@nekokichi1_yos2)です。
UISegmentControlやUIProgressViewなど、一部のUIには高さ(もしくは幅)を変更できないUIがあります。
ですが、見た目の高さを変更することは可能です。
解説
使用するのは、transform.scaledBy(x: , y: )。
segment.transform = segment.transform.scaledBy(x: 1, y: 2)
transformは、Viewの拡大や回転を司るプロパティ。
scaledByは、幅や高さを拡大させるプロパティ
(2なら2倍、4なら4倍に拡大させる)
あくまで、”見た目”の高さだけ変更してるだけなので、ご注意を。
(他にも、AutoLayoutやLayerを駆使した方法もある。)
(参考)
結果
変更前
変更後
ソースコード
import UIKit class test1: UIViewController { @IBOutlet weak var progress: UIProgressView! @IBOutlet weak var segment: UISegmentedControl! override func viewDidLoad() { super.viewDidLoad() progress.transform = progress.transform.scaledBy(x: 1, y: 10) segment.transform = segment.transform.scaledBy(x: 1, y: 2) } }