Я хочу отключить кнопку (UIButton) на iOS после ее нажатия. Я новичок в разработке для iOS, но я думаю, что эквивалентный код на объективе - C:
button.enabled = NO;
Но я не мог этого сделать быстро.
Я хочу отключить кнопку (UIButton) на iOS после ее нажатия. Я новичок в разработке для iOS, но я думаю, что эквивалентный код на объективе - C:
button.enabled = NO;
Но я не мог этого сделать быстро.
Логическое значение для NO в Swift - false.
button.isEnabled = false
должен это сделать.
 Здесь - документация Swift для свойства UIControl isEnabled.
Если вы хотите, чтобы кнопка оставалась неподвижной без "нажатого" вида:
// Swift 2
editButton.userInteractionEnabled = false 
// Swift 3
editButton.isUserInteractionEnabled = false 
Помните:
1) Ваш IBOutlet - → @IBOutlet weak var editButton: UIButton! 
2) Код выше находится в viewWillAppear
Как я это делаю:
@IBAction func pressButton(sender: AnyObject) {
    var disableMyButton = sender as? UIButton
    disableMyButton.enabled = false
}
IBAction подключен к вашей кнопке в раскадровке.
Если у вас установлена ваша кнопка в качестве выхода:
    @IBOutlet weak var myButton: UIButton!
Затем вы можете получить доступ к включенным свойствам с помощью. обозначение имени кнопки:
    myButton.enabled = false
		Отключите кнопку Swift 3:
yourButton.isEnabled = false
		Отключить кнопку в Swift 4 можно по коду
@IBAction func yourButtonMethodname(sender: UIButon) {
 yourButton.isEnabled = false 
}
		 Вы можете включить/отключить кнопку, используя свойство isEnabled или isUserInteractionEnabled.
Разница между двумя:
 isEnabled является свойством UIControl (суперкласс UIButton) и имеет визуальные эффекты (то есть выделенные серым цветом) включения/выключения
 isUserInteractionEnabled является свойством UIView (суперкласса UIControl) и не имеет визуального эффекта, но достигает цели
Использование :
myButton.isEnabled = false // Recommended approach
myButton.isUserInteractionEnabled = false // Alternative approach
		 Допустим, в Swift 4 у вас есть кнопка, настроенная для перехода в качестве IBAction например, @IBAction func nextLevel(_ sender: UIButton) {} и у вас есть другие действия, происходящие в вашем приложении (например, таймер, gamePlay и т.д.), Вместо того, чтобы отключать кнопку перехода, вы можете захотеть дать своему пользователю возможность использовать этот переход, пока другие действия все еще происходят и БЕЗ СБОРА ПРИЛОЖЕНИЯ. Вот как:
var appMode = 0
@IBAction func mySegue(_ sender: UIButton) {
    if appMode == 1 {  // avoid crash if button pressed during other app actions and/or conditions
        let conflictingAction = sender as UIButton
        conflictingAction.isEnabled = false
    }
}
  Обратите внимание, что у вас, скорее всего, будут другие условия, if appMode == 0 и/или if appMode == 1 будут по-прежнему возникать и НЕ конфликтовать с кнопкой mySegue. Таким образом, избегая столкновения.
Для тех, кто Googled "отключил кнопку", но может иметь более тонкие варианты использования:
Отключить с визуальным эффектом: как уже говорили другие, это предотвратит нажатие кнопки, и система автоматически сделает ее отключенной:
yourButton.isEnabled = false 
 Отключить без визуального эффекта. Используете ли вы кнопку в том случае, если она должна выглядеть нормально, но не реагирует на прикосновения? Попробуй это!
yourButton.userInteractionEnabled = false
 Скрыть без отключения: этот подход скрывает кнопку, не отключая ее (невидимо, но все же можно нажать):
 yourButton.alpha = 0.0
 Удалить: Это полностью удалит представление:
 yourButton.removeFromSuperView()
 Нажмите что-нибудь за кнопкой: две кнопки сложены, и вы хотите, чтобы верхняя кнопка временно работала так, как будто ее там нет? Если вам больше не понадобится верхняя кнопка, удалите ее. Если вам это понадобится снова, попробуйте уменьшить его высоту или ширину до 0!