2016-08-29 2 views
0

Dieser Code hat eine Schaltfläche, wenn die blaue Box von groß zu klein gedrückt wird. Wie kann der Code geschrieben werden, so dass wenn der Knopf gedrückt wird, er von einem großen roten Kasten zu einem blauen kleinen Kasten geht? Vielen Dank.Wie ändert man die Farbansicht, wenn die Taste gedrückt wird? (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. 
    } 


} 

Antwort

0

Sehen Sie, ob Sie das für sich selbst erarbeiten können. Die Methode viewDidLoad richtet die Anfangseinstellungen Ihrer colorview ein.

Sie haben Code in viewDidLoad, der die backgroundColor Eigenschaft Ihrer colorview zu blau setzt. Es verwendet den Ausdruck UIColor.blueColor().

Der äquivalente Ausdruck für Rot ist UIColor.redColor(). Sehen Sie, wenn Sie herausfinden können, wie Sie die Startfarbe Ihres colorview zu rot ändern.

Jetzt haben Sie in Ihrer changethebleep Methode etwas seltsamen Code, um die Einschränkungen Ihrer colorview zu ändern, so dass es kleiner. Das funktioniert vermutlich, also lassen wir das in Ruhe.

Sie könnten einfach die Zeile von Ihrem viewDidLoad kopieren, die Ihre colorview.backgroundColor auf blau setzt und in Ihre changethebleep Methode einfügt.

BTW, Methodennamen und Variablennamen sollten in Swift camelCased sein, was bedeutet, dass der erste Buchstabe klein geschrieben sein sollte und der Anfang jedes nachfolgenden Wortes groß geschrieben werden sollte. So sollte changethebleep wirklich changeTheBleep sein und colorview sollte colorView sein. Das wird die Funktion Ihres Codes nicht ändern, aber das sind starke Namenskonventionen in Swift (und auch in Objective-C).

Verwandte Themen