Bagaimana saya secara terprogram membuat elemen grafis (seperti a UIButton
) di Swift? Saya mencoba membuat dan menambahkan tombol ke tampilan, tetapi tidak berhasil.
256
Berikut ini adalah solusi lengkap untuk menambahkan secara UIButton
programatis dengan targetAction .
Cepat 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")
}
Mungkin lebih baik menggunakan NSLayoutConstraint
daripada frame
menempatkan tombol dengan benar untuk setiap layar iPhone.
Kode yang diperbarui ke 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")
}
Kode yang diperbarui ke 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")
}
Di atas masih berfungsi jika func buttonAction
dinyatakan private
atau internal
.
Anda dapat menambahkan UIButton, UIlable, dan UITextfield secara terprogram dengan cara ini.
Kode UIBton
Kode UILabel
Kode UITextField
Semoga ini bermanfaat bagi Anda.
sumber
Untuk Swift 3
Untuk Swift 4
sumber
button.frame = (frame: CGRect(x: self.view.frame.size.width - 60, y: 20, width: 50, height: 50))
seharusnyabutton.frame = CGRect(x: self.view.frame.size.width - 60, y: 20, width: 50, height: 50)
Cepat 3
Keluaran
sumber
Cara melakukan ini menggunakan Swift 3.0 .
sumber
sumber
API belum berubah - hanya sintaks yang dimiliki. Anda dapat membuat
UIButton
dan menambahkannya seperti ini:sumber
Anda dapat membuat seperti ini dan Anda dapat menambahkan tindakan juga seperti ini ....
sumber
Tambahkan kode ini di viewDidLoad
// add Button
Tulis fungsi ini di luarnya, ini akan memanggil ketika Anda menekan tombol
sumber
Di Swift 2 dan iOS 9.2.1
sumber
Untuk Swift 5 sama seperti Swift 4
sumber
Itu mungkin. Anda melakukan semuanya dengan cara yang sama kecuali menggunakan sintaks cepat. Misalnya, Anda dapat membuat UIButton dalam kode seperti ini:
sumber
Untuk membuat UIButton dari storyboard: 1 - Seret objek UIButton dari Perpustakaan Objek ke ViewController dalam file storyboard 2 - Perlihatkan Asisten editor 3 - Seret dengan klik kanan dari UIButton buat di atas ke dalam kelas Anda. Hasilnya adalah sebagai berikut:
Untuk membuat UIButton secara terprogram: 1- Tuliskan ke "override func viewDidLoad ()":
2- menambahkan fungsi IBAction:
sumber
sumber
Ya dalam simulator. Beberapa kali tidak akan mengenali pemilih ada bug yang tampaknya. Bahkan saya menghadapi bukan karena kode Anda, maka saya hanya mengubah nama tindakan (pemilih). Berhasil
Fungsi Selektor Ada di Sini:
sumber
sumber
Tulis kode contoh ini dalam Swift 4.2 untuk menambahkan Tombol Secara Programatis.
sumber
sumber
Langkah 1: Buat proyek baru
Langkah 2: di ViewController.swift
sumber
Swift: Tombol Ui buat secara pemrograman
sumber
sumber
Saya biasanya pergi untuk menyiapkan ekstensi UIBotton. Cepat 5.
sumber
sumber
sumber