2016-08-31 2 views
0

以下のコードには、大きい青色のボックスを押すと小さい青色のボックスに変わるボタンがあります。どのようにコードを書くことができるので、青いボックスをクリックして小さなボックスに入れることができますか?青色のボックスは、単にuicolorviewを使用してコード化された画像ではありません。ありがとうボタンを押さずにuicolorviewをボタン(スウィフトコード)として使用する前後の制約に変更する方法は?

class ViewController: UIViewController { 

    let colorview = UIView() 
    var allc = [NSLayoutConstraint]() 
    override func viewDidLoad() { 
     super.viewDidLoad() 
     colorview.translatesAutoresizingMaskIntoConstraints = false 
     colorview.backgroundColor = UIColor.blueColor() 
     self.view.addSubview((colorview)) 

     let leadingc = colorview.leadingAnchor.constraintEqualToAnchor(self.view.leadingAnchor) 
     let trailingC = colorview.trailingAnchor.constraintEqualToAnchor(self.view.trailingAnchor) 
     let topc = colorview.topAnchor.constraintEqualToAnchor(self.view.topAnchor) 
     let bottomc = colorview.bottomAnchor.constraintEqualToAnchor(self.view.bottomAnchor, constant: -50) 

     NSLayoutConstraint.activateConstraints([leadingc, trailingC, topc, bottomc]) 

     let widthc = colorview.widthAnchor.constraintEqualToConstant(100) 
     let heightc = colorview.heightAnchor.constraintEqualToConstant(100) 
     let centerxc = colorview.centerXAnchor.constraintEqualToAnchor(self.view.centerXAnchor) 
     let centeryc = colorview.centerYAnchor.constraintEqualToAnchor(self.view.centerYAnchor) 

     allc = [leadingc, trailingC, topc, bottomc, widthc, heightc, centerxc, centeryc] 
    } 

    @IBAction func changethebleep(sender: AnyObject) { 

     var newactive = [NSLayoutConstraint]() 

     for constraint in allc { 
      if constraint.active { 
       constraint.active = false 
      } else { 
       newactive.append(constraint) 
      } 
     } 

     NSLayoutConstraint.activateConstraints(newactive) 
    } 
} 
+1

あなたは、ビューにUITapGestureRecognizerを追加することができます。 – miya

+0

どこのコードでそうするのですか? – ssd

答えて

0

あなたはUITapGestureRecognizerが必要です。設定するには、最初にviewDidLoad()の末尾に次のコードを追加する必要があります。以下のような

let tapGestureRecognizer = UITapGestureRecognizer(target:self, action:Selector("imageTapped:")) 
colorview.userInteractionEnabled = true 
colorview.addGestureRecognizer(tapGestureRecognizer) 

、その後ハンドラメッセージimageTapped(omg:AnyObject)

func imageTapped(img: AnyObject) 
{ 
    var newactive = [NSLayoutConstraint]() 

    for constraint in allc { 
     if constraint.active { 
      constraint.active = false 
     } else { 
      newactive.append(constraint) 
     } 
    } 
} 
関連する問題