i created a UIButton programatically in Swift and i want to access the myBtn in whole class
this is my code
import UIKit
import Foundation
class ViewController: UIViewController
{
@IBOutlet var btn: UIButton!
@IBAction func btnPressed()
{
self.custum()
}
override func viewDidLoad()
{
super.viewDidLoad()
let myBtn = UIButton.buttonWithType(UIButtonType.System) as UIButton
myBtn.frame = CGRectMake(self.view.frame.size.width/2.5, self.view.frame.size.height/4, 100, 30)
myBtn.setTitle("Button 1", forState: UIControlState.Normal)
myBtn.addTarget(self, action: "btnPressed", forControlEvents: UIControlEvents.TouchUpInside)
self.view.addSubview(myBtn)
self.custum()
}
func custum()
{
UIView.animateWithDuration(1.0, animations:{
let grow = CGAffineTransformMakeScale(1,1)
let rotate = CGAffineTransformMakeRotation(10)
myBtn.transform = CGAffineTransformConcat(grow, rotate) // i'm getting this error use of unresolved identifier 'myBtn'
})
}
i'm new to swift programming, please tell me if u know, thanks in advance.
Okey, some of your parts contains right code, some not. Like here @IBOutlet var btn: UIButton!
this is class object property, so you could access it in all your methods inside this class.
What about let myBtn
, you just create it in viewDidLoad
method. So it's visible inside it. You need to store this property outside method, but inside class.
Another question will be: would you like to use let
or var
. Because let
is constant, then you need to initialise it inside any init
method or while declaration (you can't do this in others method like viewDidLoad
). So for you it's better to use var
.
With your example it will be:
class ViewController: UIViewController
{
@IBOutlet var btn: UIButton!
var myBtn: UIButton!
@IBAction func btnPressed()
{
self.custum()
}
override func viewDidLoad()
{
super.viewDidLoad()
myBtn = UIButton.buttonWithType(UIButtonType.System) as UIButton
myBtn.frame = CGRectMake(self.view.frame.size.width/2.5, self.view.frame.size.height/4, 100, 30)
myBtn.setTitle("Button 1", forState: UIControlState.Normal)
myBtn.addTarget(self, action: "btnPressed", forControlEvents: UIControlEvents.TouchUpInside)
self.view.addSubview(myBtn)
self.custum()
}
func custum()
{
UIView.animateWithDuration(1.0, animations:{
let grow = CGAffineTransformMakeScale(1,1)
let rotate = CGAffineTransformMakeRotation(10)
self.myBtn.transform = CGAffineTransformConcat(grow, rotate) // i'm getting this error use of unresolved identifier 'myBtn'
})
}
}
I use self.myBtn
in last method, because it's rules for closures in swift.
import UIKit
import Foundation
class ViewController: UIViewController
{
var myBtn:UIButton
@IBOutlet var btn: UIButton!
@IBAction func btnPressed()
{
self.custum()
}
override func viewDidLoad()
{
super.viewDidLoad()
myBtn = UIButton.buttonWithType(UIButtonType.System) as UIButton
myBtn.frame = CGRectMake(self.view.frame.size.width/2.5, self.view.frame.size.height/4, 100, 30)
myBtn.setTitle("Button 1", forState: UIControlState.Normal)
myBtn.addTarget(self, action: "btnPressed", forControlEvents: UIControlEvents.TouchUpInside)
self.view.addSubview(myBtn)
self.custum()
}
func custum()
{
UIView.animateWithDuration(1.0, animations:{
let grow = CGAffineTransformMakeScale(1,1)
let rotate = CGAffineTransformMakeRotation(10)
myBtn.transform = CGAffineTransformConcat(grow, rotate) // i'm getting this error use of unresolved identifier 'myBtn'
})
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.