2016-08-29 2 views
0

Ce code a un bouton lorsque vous appuyez sur la boîte bleue va de grande à petite. Comment le code peut-il être écrit de sorte que lorsque le bouton est enfoncé, il passe de la grande boîte rouge à la petite boîte bleue? Merci.Comment changer de colorview quand on appuie sur le bouton? (swift)

import UIKit 

class ViewController: UIViewController { 

    let colorview = UIView() 
    var initialc = [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) 

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


    } 
    @IBAction func changethebleep(sender: AnyObject) { 

     NSLayoutConstraint.deactivateConstraints(initialc) 

     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) 

     NSLayoutConstraint.activateConstraints([widthc,heightc,centerxc,centeryc]) 

    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 


} 

Répondre

0

Voyez si vous pouvez vous débrouiller par vous-même. La méthode viewDidLoad configure les paramètres initiaux de votre colorview.

Vous avez le code viewDidLoad qui définit la propriété backgroundColor de votre colorview en bleu. Il utilise l'expression UIColor.blueColor().

L'expression équivalente pour le rouge est UIColor.redColor(). Voyez si vous pouvez comprendre comment changer la couleur de départ de votre colorview en rouge. Maintenant, dans votre méthode changethebleep, vous avez un code quelque peu étrange pour modifier les contraintes de votre colorview, ce qui le rend plus petit. Cela fonctionne, sans doute, alors laissons cela tranquille.

Vous pouvez simplement copier la ligne de votre viewDidLoad qui définit votre colorview.backgroundColor bleu et le coller dans votre méthode changethebleep.

BTW, les noms de méthodes et les noms de variables doivent être camelCased dans Swift, ce qui signifie que la première lettre doit être en minuscule, et le début de chaque mot suivant doit être en majuscule. Donc changethebleep devrait vraiment être changeTheBleep et colorview devrait être colorView. Cela ne changera pas la fonction de votre code, mais ce sont des conventions de dénomination fortes dans Swift (et aussi dans Objective-C).