Как я могу установить мою первую кнопку как изначально выбранную, когда пользователь заходит в проект? - PullRequest
0 голосов
/ 02 июля 2019

Я хочу, чтобы моя первая кнопка была изначально выбрана, когда пользователь выбирает проект. Прямо сейчас вы должны нажать на первую кнопку, чтобы вызвать ее. Вместо того, чтобы нажимать на него в начале, я хочу сначала выбрать его, когда пользователь подключается к проекту.

 @IBAction func onTapChangeColor(_ sender: UIButton) {
    buttons.forEach {
        sender.isSelected = ($0 == sender)
        $0.setTitleColor((sender.isSelected) ? .orange : .white, for: .normal)
    }
}

Каждый раз, когда пользователь нажимает на кнопку, в контейнер добавляется новый вид. Вид также должен быть изначально выбран с помощью кнопки.


 @IBAction func planAction(_ sender: UIButton) {
    let newPlan = sender.frame.origin.x
    scrollView.subviews.forEach{$0.removeFromSuperview()}
    let storyBoard = UIStoryboard(name: "Main", bundle: nil)
    let nextController = storyBoard.instantiateViewController(withIdentifier: "PlansViewController2") as! PlansViewController2
    addChildView(viewController: nextController, in: scrollView)
    self.movingView.frame.origin.x = newPlan
}

planButton должен быть изначально выбран при переходе пользователя в проект.

Ответы [ 2 ]

2 голосов
/ 02 июля 2019

Создайте для него розетку, затем внутри viewDidLoad

var fButton = buttons.first!

fButton.setTitleColor(UIColor.orange, for: .normal)

ИЛИ

onTapChangeColor(fButton)

@IBAction func onTapChangeColor(_ sender: UIButton) {
    buttons.forEach { 
        $0.setTitleColor( $0 == sender ? .orange : .white, for: .normal)
    }
}
1 голос
/ 02 июля 2019

Вместо изменения titleColor при каждом нажатии button вы можете просто установить color каждого button в collection в соответствии с их состоянием - .selected or .normal.

Кроме того, меняйте button's isSelected только на true/false каждый раз - либо нажимается button, либо при первоначальном выборе button.

class VC: UIViewController {
    @IBOutlet var buttons: [UIButton]!

    override func viewDidLoad() {
        super.viewDidLoad()
        buttons.forEach {
            $0.setTitleColor(.orange, for: .selected)
            $0.setTitleColor(.white, for: .normal)
        }
        buttons.first?.isSelected = true
    }

    @IBAction func onTapChangeColor(_ sender: UIButton) {
        buttons.forEach {
            $0.isSelected = ($0 == sender)
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...