Swift3にアップデートしたらCGRectMakeが使えず、'CGRectMake' is unavailable in Swiftとエラーが出るようになった。
XCodeをUpdateしてから、本に書いてあるサンプルのほとんどが陳腐化してしまった。
CGRectMakeという、座標を指定する関数が使えなくなっていた。
「'CGRectMake' is unavailable in Swift」というエラーが出るようになってしまったのだ。
このエラーに対応するには、CGRectをWrapする関数を作ればよい。
http://stackoverflow.com/questions/30692096/using-variables-in-cgrectmake-swift-uikit
func CGRectMake(_ x: CGFloat, _ y: CGFloat, _ width: CGFloat, _ height: CGFloat) -> CGRect { return CGRect(x: x, y: y, width: width, height: height) }
これを使って、Labelを移動させたりLabelを作る処理を買いてみる。
//関数名は変になったすまん。clickMoveが適切 @IBAction func clickMake(_ sender: AnyObject) { let rect = CGRectMake( labelMove.frame.origin.x, labelMove.frame.origin.y + 30, labelMove.frame.width + 50, labelMove.frame.height + 30) labelMove.frame = rect labelMove.text = "move label" } @IBAction func clickCreate(_ sender: AnyObject) { let label = UILabel() let rect = CGRectMake( 100, 100, 150, 30) label.frame = rect label.text = "create label" self.view.addSubview(label) } func CGRectMake(_ x: CGFloat, _ y: CGFloat, _ width: CGFloat, _ height: CGFloat) -> CGRect { return CGRect(x: x, y: y, width: width, height: height) }
Xcodeではじめる 簡単iPhoneアプリ開発[Xcode 8 & Swift 3対応]
- 作者: 正健太朗
- 出版社/メーカー: 技術評論社
- 発売日: 2016/09/22
- メディア: 大型本
- この商品を含むブログを見る