Como criar programaticamente elementos gráficos (como a UIButton
) no Swift? Tentei criar e adicionar botão em uma exibição, mas não consegui.
256
Aqui está uma solução completa para adicionar uma UIButton
programação com o targetAction .
Swift 2.2
override func viewDidLoad() {
super.viewDidLoad()
let button = UIButton(frame: CGRect(x: 100, y: 100, width: 100, height: 50))
button.backgroundColor = .greenColor()
button.setTitle("Test Button", forState: .Normal)
button.addTarget(self, action: #selector(buttonAction), forControlEvents: .TouchUpInside)
self.view.addSubview(button)
}
func buttonAction(sender: UIButton!) {
print("Button tapped")
}
Provavelmente, é melhor usar NSLayoutConstraint
do que frame
colocar o botão corretamente em cada tela do iPhone.
Código atualizado para o Swift 3.1 :
override func viewDidLoad() {
super.viewDidLoad()
let button = UIButton(frame: CGRect(x: 100, y: 100, width: 100, height: 50))
button.backgroundColor = .green
button.setTitle("Test Button", for: .normal)
button.addTarget(self, action: #selector(buttonAction), for: .touchUpInside)
self.view.addSubview(button)
}
func buttonAction(sender: UIButton!) {
print("Button tapped")
}
Código atualizado para o Swift 4.2 :
override func viewDidLoad() {
super.viewDidLoad()
let button = UIButton(frame: CGRect(x: 100, y: 100, width: 100, height: 50))
button.backgroundColor = .green
button.setTitle("Test Button", for: .normal)
button.addTarget(self, action: #selector(buttonAction), for: .touchUpInside)
self.view.addSubview(button)
}
@objc func buttonAction(sender: UIButton!) {
print("Button tapped")
}
O acima descrito ainda funciona se func buttonAction
for declarado private
ou internal
.
Você pode adicionar UIButton, UIlable e UITextfield programaticamente dessa maneira.
Código UIButton
Código UILabel
Código UITextField
Espero que isso seja útil para você.
fonte
Para Swift 3
Para Swift 4
fonte
button.frame = (frame: CGRect(x: self.view.frame.size.width - 60, y: 20, width: 50, height: 50))
deve serbutton.frame = CGRect(x: self.view.frame.size.width - 60, y: 20, width: 50, height: 50)
Swift 3
Resultado
fonte
Como fazer isso usando o Swift 3.0 .
fonte
fonte
A API não mudou - apenas a sintaxe mudou. Você pode criar um
UIButton
e adicioná-lo assim:fonte
Você pode criar assim e também pode adicionar ações assim ....
fonte
Adicione este código em viewDidLoad
// add Button
Escreva esta função fora dela, isso será chamado quando você tocar no botão
fonte
No Swift 2 e iOS 9.2.1
fonte
Para o Swift 5, da mesma forma que o Swift 4
fonte
É possível. Você faz tudo da mesma maneira, exceto a sintaxe rápida. Por exemplo, você pode criar um UIButton em código como este:
fonte
Para criar UIButton a partir do storyboard: 1 - Arraste o objeto UIButton da Biblioteca de objetos para o ViewController no arquivo de storyboard 2 - Editor do Show Assistant 3 - Arraste com o botão direito do mouse em UIButton criado acima em sua classe. O resultado é o seguinte:
Para criar UIButton programaticamente: 1- Escreva em "override func viewDidLoad ()":
2- adicione a função IBAction:
fonte
fonte
Sim no simulador. Algumas vezes, ele não reconhece o seletor, parece que existe um erro. Mesmo que eu não tenha enfrentado o seu código, alterei o nome da ação (seletor). Funciona
A função seletora está aqui:
fonte
fonte
Escreva este código de exemplo no Swift 4.2 para adicionar botão programaticamente.
fonte
fonte
Etapa 1: criar um novo projeto
Etapa 2: em ViewController.swift
fonte
Swift: o botão Ui cria programaticamente
fonte
fonte
Normalmente, eu configuro uma extensão do UIBotton. Swift 5.
fonte
fonte
fonte