Переключение цвета фона контроллера представления с помощью одной кнопки Xcode или swift - PullRequest
1 голос
/ 08 мая 2020

Программа предназначена для переключения экрана между черным и белым при нажатии кнопки. Проблема в том, что это должно выполняться с помощью кнопки, а не переключателя. Что не так с этим кодом? Когда я запускаю программу, фон не переключается. Есть предложения, как решить эту проблему?

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
       // set the background color to white when opened
        backgroundView.backgroundColor = .white
    }

    @IBOutlet weak var OnOffButton: UIButton!
    @IBOutlet var backgroundView: UIView!
    @IBAction func OnOff(_ sender: AnyObject) {
        // write your code here
        // code should change background color to black if it is white and vice versa. 
        if backgroundView.backgroundColor == .white {
            backgroundView.backgroundColor = .black
        } else {
            backgroundView.backgroundColor = .white
        }

    }

}

1 Ответ

0 голосов
/ 08 мая 2020

Я только что создал новое приложение с одним представлением iOS, и оно отлично работает.

В новом проекте я добавил UIButton в первую сцену раскадровки и подключил его к OnOff:

Примечание: вы, кстати, НЕ должны начинать функции с заглавной буквы. Это должно быть onOff:. Используйте Refactor, чтобы изменить это.

Затем я перетащил UIView на эту сцену, щелкнул правой кнопкой мыши по представлению и добавил New Referencing Outlet, перетащив его от + вправо до текста View Controller на left и присвоил ему backgroundView.

Он отлично работал с первой попытки. Возможно, вы неправильно подключили IBOutlet или IBAction. Добавьте точку останова внутри своей функции OnOff: и посмотрите, срабатывает ли она, когда вы нажимаете кнопку. Если это так, убедитесь, что IBOutlet для backgroundView правильно подключен, введя в консоль следующее:

po self.backgroundView

Если это nil, значит, он неправильно подключен к UIView. .

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...