2015-07-06 27 views
11

próbuję zainicjować UIButton programowo ale zobaczyć jeden z tych błędów:iOS 9 UIButton Inititalization

buttonWithType is unavailable: use object construction UIButton(type:)

lub

error: incorrect argument label in call (have 'buttonWithType:', expected 'type:')

for char in keys { 
     let btn: UIButton = UIButton.buttonWithType(UIButtonType.System) as UIButton 

     btn.frame = CGRectMake(0, 0, 20, 20) 
     btn.setTitle(char, forState: .Normal) 
     btn.sizeToFit() 
     btn.titleLabel?.font = UIFont.systemFontOfSize(20) 

     btn.backgroundColor = UIColor(hue: (216/360.0), saturation: 0.1, brightness: 0.81, alpha: 1)// 
     btn.setTitleColor(UIColor(white: 1.0, alpha: 1.0), forState: .Normal) 

     btn.setContentHuggingPriority(1000, forAxis: .Horizontal) 
     btn.setContentCompressionResistancePriority(1000, forAxis: .Horizontal) 

     btn.addTarget(self, action: Selector("handleBtnPress:"), forControlEvents: .TouchUpInside) 

     self.addSubview(btn) 
    } 

error

+0

'UIButton (typ: ...) '? – JAL

+0

Nie rozumiem cię – Swift2

+0

Zobacz odpowiedź właśnie napisałem. – JAL

Odpowiedz

33

inicjatora wygoda dla UIButton zmienił się.

convenience init(type buttonType: UIButtonType)

Swift 3:

let btn = UIButton(type: .system) // note the lower case s 

Swift 2.x:

let btn = UIButton(type: .System) 
+0

Dziękuję bardzo – Swift2

-2

W iOS 9 wygoda startowych został zmieniony dla buttonWithType. Nie można używać

let button = UIButton.buttonWithType(UIButtonType.System) 

zamiast używać

let button = UIButton(type: UIButtonType.System) 

poniżej jest składnia:

Screenshot

0

iOS 10 Xcode 8 .....

let button = UIButton(type: .system) // note the lower case s 
    button.setTitle("Dismiss", for: UIControlState()) 
    button.backgroundColor = UIColor.white 
    let buttonWidth: CGFloat = alertWidth/2 
    let buttonHeight: CGFloat = 40 
    button.frame = CGRect(x: alertView.center.x - buttonWidth/2, y: alertView.center.y - buttonHeight/2, width: buttonWidth, height: buttonHeight) 
    button.addTarget(self, action: #selector(ExampleIIIViewController.dismissAlert), for: UIControlEvents.touchUpInside) 

    alertView.addSubview(button)