2017-01-27 3 views
1

Я пытаюсь создать кнопку цикла с помощью AVPlayer. Когда пользователь нажимает кнопку (Loop), я бы хотел, чтобы она оставалась выбранной до тех пор, пока пользователь не повторит ее, чтобы отменить выбор. У меня есть следующий код, но он, похоже, не работает. Благодаря!Как сохранить выбранную кнопку?

@IBAction func didTapLoopButton(_ sender: Any) { 
    guard let loopButton = sender as? UIButton else { 
     return 
    } 

    if loopButton.state == .selected { 
     print("selected") 


    } else { 
     print("deselected") 
    } 
} 

ответ

0

Попробуйте это:

@IBAction func didTapLoopButton(_ sender: Any) { 
    guard let loopButton = sender as? UIButton else { 
     return 
    } 

    let selected = !loopButton.isSelected 

    if selected { 
     print("selected") 
    } else { 
     print("deselected") 
    } 

    loopButton.isSelected = selected 
} 
+0

Спасибо за помощь! Как я могу выполнить код на основе, если он выбран или не выбран? Kinda, что у меня было выше в моем коде – user7097242

+0

Нет проблем, я обновил свой ответ. – Coder256

0

сложена из вопроса и ответа выше:

@IBAction func didTapLoopButton(_ sender: Any) { 
    guard let loopButton = sender as? UIButton else { 
     return 
    } 

    loopButton.isSelected = !loopButton.isSelected 

    if loopButton.state == .selected { 
     print("selected") 


    } else { 
     print("deselected") 
    } 
} 
+0

Я не думаю, что 'loopButton.state == .selected' обязательно отражает' loopButton.isSelected', и даже если это так, вы всегда должны использовать 'loopButton.isSelected' для согласованности. Я обновил свой ответ с помощью кода, который я рекомендую использовать. – Coder256

Смежные вопросы