クロージャを使ってそのなかでViewの詳細を定義する書き方を見かけます。
下記の例ではTaskButtonに一度格納してクロージャの外でaddSubViewしていますが、クロージャの中で全てをやってしまいたいと考えました。
Swift
1let TaskButton:UIButton = { 2 let button = UIButton() 3 button.layer.masksToBounds = true 4 button.layer.cornerRadius = 50.0 5 button.frame = CGRect(x:0,y:0,width:self.view.frame.width/4,height:self.view.frame.width/4) 6 button.backgroundColor = .red 7 button.layer.position = CGPoint(x: self.view.frame.midX, y: self.view.frame.height - self.view.frame.midY) 8 button.setTitle("追加", for: UIControlState.normal) 9 button.addTarget(self, action: 10 #selector(addTask), for: .touchUpInside) 11 return button 12 }() 13 self.view.addSubview(TaskButton)
クロージャの中で全てやってしまうコード
Swift
1var _ = { ()->() in 2 let button = UIButton() 3 button.frame = CGRect(x:0,y:0,width:self.view.frame.width/4,height:self.view.frame.width/4) 4 button.backgroundColor = .red 5 button.layer.position = CGPoint(x: self.view.frame.midX, y: self.view.frame.midY) 6 button.setTitle("ボタン", for: UIControl.State.normal) 7 self.view.addSubview(button) 8 }()
クロージャの中でaddSubViewまでやってしまうコードをネットでみたことがありません、何が問題があるのでしょうか?
個人的にはクロージャの中でaddSubViewまでやったほうが綺麗な気がしたのに例を見つけられなかったので疑問に思いました。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。