Поток 1: сигнал SIGABRT, когда мой код работает - PullRequest
0 голосов
/ 27 апреля 2020

Total Swift newb ie здесь. Я пытаюсь сделать два контейнера, которые охватывают половину view.heightAnchor.constraint с одной функцией createhalfcontainer, чтобы сделать вещи более аккуратными. Всякий раз, когда я запускаю свой код, я получаю сигнал SIGABRT, и, несмотря на тщательный анализ кода, я не могу понять, почему.

class ViewController: UIViewController {

    let iv = {() -> UIImageView in
        let imageview = UIImageView(image: #imageLiteral(resourceName: "google"))
        imageview.contentMode = UIViewContentMode.scaleAspectFit
        return imageview
    }()

    let tv = {() -> UITextView in
        let textview = UITextView()
        textview.text = "I am going to work here soon."
        textview.font = UIFont.boldSystemFont(ofSize: 16)
        textview.textAlignment = NSTextAlignment.center
        textview.isEditable = false
        return textview
    }()



    func createhalfcontainer(within: UIView, direction:String, view: UIView)-> UIView{
        let container = UIView()

        container.translatesAutoresizingMaskIntoConstraints = false
        within.translatesAutoresizingMaskIntoConstraints = false

        container.heightAnchor.constraint(equalTo: view.heightAnchor,multiplier: 0.5).isActive = true
        container.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
        container.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true

        if direction == "up" {
            container.topAnchor.constraint(equalTo:view.topAnchor).isActive = true
            within.topAnchor.constraint(equalTo: container.topAnchor, constant: 100).isActive = true}
        else {container.bottomAnchor.constraint(equalTo:view.bottomAnchor).isActive = true
            within.bottomAnchor.constraint(equalTo: container.bottomAnchor, constant: 100).isActive = true}

        within.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
        within.trailingAnchor.constraint(equalTo: container.trailingAnchor).isActive = true

        container.addSubview(within)
        return container
    }


    override func viewDidLoad() {
        super.viewDidLoad() //This instantiates the view object
        let uppercontainer = self.createhalfcontainer(within: iv, direction: "up", view:view)
        let bottomcontainer = self.createhalfcontainer(within: tv, direction: "bottom",view:view)
        view.addSubview(uppercontainer)
        view.addSubview(bottomcontainer)

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