Как программно создать графические элементы (например, a UIButton
) в Swift? Я пытался создать и добавить кнопку в представление, но не смог.
256
Вот полное решение для UIButton
программного добавления с 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")
}
Вероятно, лучше использовать NSLayoutConstraint
, чем frame
правильно разместить кнопку для каждого экрана iPhone.
Обновлен код до 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")
}
Обновлен код до 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")
}
Выше все еще работает, если func buttonAction
объявлено private
или internal
.
Таким способом вы можете программно добавить UIButton, UIlable и UITextfield.
Код UIButton
Код UILabel
Код UITextField
Надеюсь, это полезно для вас.
источник
Для Swift 3
Для Swift 4
источник
button.frame = (frame: CGRect(x: self.view.frame.size.width - 60, y: 20, width: 50, height: 50))
должно бытьbutton.frame = CGRect(x: self.view.frame.size.width - 60, y: 20, width: 50, height: 50)
Свифт 3
Вывод
источник
Как это сделать с помощью Swift 3.0 .
источник
источник
API не изменился - изменился только синтаксис. Вы можете сделать
UIButton
и добавить его так:источник
Вы можете создать как это, и вы можете добавить действие также, как это ....
источник
Добавить этот код в viewDidLoad
// Кнопка добавления
Напишите эту функцию за ее пределами, она будет вызываться при нажатии на кнопку
источник
В Swift 2 и iOS 9.2.1
источник
Для Swift 5 точно так же, как Swift 4
источник
Это возможно. Вы делаете все почти так же, за исключением использования быстрого синтаксиса. Например, вы могли бы сделать UIButton в коде так:
источник
Для создания UIButton из раскадровки: 1 - Перетащите объект UIButton из библиотеки объектов в ViewController в файле раскадровки 2 - Показать редактор Assistant 3 - Перетащите правой кнопкой мыши из UIButton create выше в свой класс. Результат следующий:
Для создания UIButton программно: 1- Запишите в "переопределить функцию viewDidLoad ()"
2 - добавить функцию IBAction:
источник
источник
Ага в симуляторе Иногда он не распознает селектор, и кажется, что есть ошибка. Даже я столкнулся не с вашим кодом, тогда я просто изменил название действия (селектор). Оно работает
Функция выбора здесь:
источник
источник
Напишите этот пример кода в Swift 4.2 для добавления кнопки программно.
источник
источник
Шаг 1: Создайте новый проект
Шаг 2: в ViewController.swift
источник
Swift: Ui Button создать программно
источник
источник
Я обычно иду на установку расширения UIBotton. Свифт 5.
источник
источник
источник