わからないことが多すぎてかなり投げやりな質問になってしまいます、すみません。
実現したいこと
実現したいことは、iosデバイスによってUISwitchのサイズを変更して、敷き詰めたいと思っています。
絵に表すと下記のような図を表現したいと思っています。うまくかけなくてわかりずらかったらすみません
実現したいことはあぷりgipadになった際も画面サイズに合わせてUISwitchの大きさを適切に変更をして,
同じ数だけ隙間なく配置したいと考えています。
調べてみたこと
UISwitchを任意のサイズで使いたいという僕の実現したいことと一致する記事があったので試してみました。
URLにあるように自分の独自のUISwitchのクラスを作成しました。
記事の中ではStoryBordを使っていましたが、コードでループさせてSwitchを作りたいと思ったので、
@IBInspectable はつけていないです。
Swift
1import UIKit 2 3class CustomSwitch: UISwitch { 4 5 override func awakeFromNib() { 6 super.awakeFromNib() 7 let dispSize:CGSize = CGSize(width: 20, height: 10) 8 let scaleX: CGFloat = dispSize.width / self.bounds.size.width 9 let scaleY: CGFloat = dispSize.height / self.bounds.size.height 10 self.transform = CGAffineTransform(scaleX: scaleX, y: scaleY) 11 } 12}
ViewControllerでこのクラスを使って実現できているか確認してみたのですが、大きさが変更されていませんでした。
比較のために普通のSwitchも配置しています。
Swift
1mport UIKit 2 3class ViewController: UIViewController { 4 var myButton:CustomSwitch! 5 var defaultButton:UISwitch! 6 override func viewDidLoad() { 7 super.viewDidLoad() 8 // Do any additional setup after loading the view, typically from a nib. 9 myButton = CustomSwitch() 10 myButton.layer.position = CGPoint(x: self.view.frame.width/2, y: self.view.frame.height/2) 11 self.view.addSubview(myButton) 12 13 defaultButton = UISwitch() 14 defaultButton.layer.position = CGPoint(x: self.view.frame.width/2, y: self.view.frame.height/3) 15 self.view.addSubview(defaultButton) 16 } 17 18 19}
このように同じサイズのボタンが表示されてしまいました。
どうしたら任意の大きさのUISwitchを作成することができるのでしょうか?
awakeFromNib()についても調べてみたのですが、認識が曖昧で、ここに書くのが正解なのかもわかりません。調べた限りではViewができあがった際に呼ばれるもの?みたいなのですが、UIがもう出来上がってしまっているので、終わった後にサイズを指定しているから適応されていないのではないかと考えたのですが、わかりませんでした。
他に参考になりそうなサイトを見つけることができなかったのでここに質問を投げてみました。
丸投げな質問になってしまい申し訳ないですが、わかる方いらっしゃいましたらどうすれば実現できるのか教えていただきたいです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。