Jak programowo tworzyć elementy graficzne (takie jak a UIButton
) w Swift? Próbowałem utworzyć i dodać przycisk do widoku, ale nie mogłem.
256
Oto kompletne rozwiązanie, aby dodać UIButton
programowo za pomocą 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")
}
Prawdopodobnie lepiej jest używać NSLayoutConstraint
, niż frame
poprawnie umieszczać przycisk dla każdego ekranu iPhone'a.
Zaktualizowany kod do 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")
}
Zaktualizowany kod do 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")
}
Powyższe nadal działa, jeśli func buttonAction
zostanie zadeklarowane private
lub internal
.
W ten sposób można dodać programowo UIButton, UIlable i UITextfield.
Kod UIButton
Kod UILabel
Kod UITextField
Mam nadzieję, że jest to dla ciebie pomocne.
źródło
Dla Swift 3
Dla Swift 4
źródło
button.frame = (frame: CGRect(x: self.view.frame.size.width - 60, y: 20, width: 50, height: 50))
powinno byćbutton.frame = CGRect(x: self.view.frame.size.width - 60, y: 20, width: 50, height: 50)
Szybki 3
Wynik
źródło
Jak to zrobić za pomocą Swift 3.0 .
źródło
źródło
Interfejs API się nie zmienił - zmieniła się tylko składnia. Możesz zrobić a
UIButton
i dodać go w następujący sposób:źródło
Możesz tworzyć w ten sposób i możesz także dodawać akcje w ten sposób ....
źródło
Dodaj ten kod w viewDidLoad
// dodaj przycisk
Napisz tę funkcję poza nią, zadzwoni po dotknięciu przycisku
źródło
W Swift 2 i iOS 9.2.1
źródło
Dla Swift 5 jest tak samo jak Swift 4
źródło
To jest możliwe. Robisz wszystko prawie w ten sam sposób, z wyjątkiem szybkiej składni. Na przykład możesz utworzyć UIButton w kodzie w następujący sposób:
źródło
Aby utworzyć UIButton z serii ujęć: 1 - Przeciągnij obiekt UIButton z Biblioteki obiektów do ViewController w pliku scenorysu 2 - Pokaż edytor Asystenta 3 - Przeciągnij prawym przyciskiem myszy z UIButton create powyżej do swojej klasy. Wynik jest następujący:
Aby utworzyć programowo UIButton: 1 - Napisz do „override func viewDidLoad ()”:
2- dodaj funkcję IBAction:
źródło
źródło
Tak w symulatorze. Czasami nie rozpoznaje selektora, wydaje się, że występuje błąd. Nawet nie widziałem twojego kodu, po prostu zmieniłem nazwę akcji (selektor). To działa
Funkcja selektora jest tutaj:
źródło
źródło
Napisz ten przykładowy kod w Swift 4.2, aby programowo dodać przycisk.
źródło
źródło
Krok 1: Utwórz nowy projekt
Krok 2: w ViewController.swift
źródło
Swift: Przycisk Ui twórz programowo
źródło
źródło
Zwykle wybieram rozszerzenie UIBotton. Szybki 5.
źródło
źródło
źródło