Почему моя страница scrollView не загружается в мое приложение iOs? Получение ошибки: EXC_BAD_INSTRUCTION (код =EXC_1386_INVOP, субкод =0x0)
Я создаю приложение, используя учебник по обучению кодам, но, несмотря на то, что я следовал точному коду и шагам, чтобы правильно построить страницу scrollView, в симуляторе iOS отображается только пустой экран. Что я делаю неправильно?
Вот мой код:
import UIKit
class ContactViewController: UIViewController {
@IBOutlet weak var scrollView: UIScrollView!
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(scrollView)
}
override func viewWillLayoutSubviews() {
super.viewWillLayoutSubviews()
scrollView.contentSize = CGSize(width: 375, height: 800)
Я получаю следующее сообщение об ошибке:
Поток 1: EXC_BAD_INSTRUCTION (код =EXC_1386_INVOP, субкод =0x0) при создании приложения, которое суммируется как
... который характеризуется как:
фатальная ошибка: неожиданно найден ноль при развертывании необязательного значения (lldb)
Я управлял этим много раз. И я внимательно просмотрел существующие посты, но я новичок, и некоторые предлагают изменения в коде, которые кажутся ненужными, поскольку я сделал все именно так, как указано в руководстве (которое, я думаю, имело бы соответствующий QA заранее). Я ценю чье-либо понимание!
ОБНОВИТЬ. Пользователи ниже помогли определить проблему. Сам код не был проблемой, но простое связывание scrollView с кодом в помощнике редактора, очевидно, не было сделано. Несмотря на то, что рядом с кодом в помощнике редактора был кружок, он на самом деле не был связан или ссылка была разорвана. Вы можете подтвердить, что ссылка на самом деле работает, наведя курсор на кружок, который выделит представление прокрутки в редакторе раскадровки синим цветом. Если ссылка не работает, она не будет выделена.
Спасибо всем за помощь. И вот снова окончательный рабочий код:
2 ответа
Вы идете правильно, ваш скроллвью не виден из-за цвета фона скроллвью, так как он понятен, поэтому вы добавляете еще одну строку вашего кода
@IBOutlet weak var scrollView: UIScrollView!
override func viewDidLoad() {
super.viewDidLoad()
//Comment this line
// self.view.addSubview(scrollView)
}
override func viewWillLayoutSubviews() {
super.viewWillLayoutSubviews()
scrollView.backgroundColor = UIColor.cyan
scrollView.contentSize = CGSize(width: 375, height: 800)
}
Вы все сделали правильно. Добавьте UIScrollViewDelegate после UIViewController, разделенных запятой. Затем выполните следующие действия: 1) Выберите scrollView и в инспекторе атрибутов включите прокрутку галочки и все отскоки. 2) Установите ограничения правильно (это главное) 3) установите этот код в вашем viewDidLoad
scrollView.isScrollEnabled = true;
self.scrollView.contentInset = UIEdgeInsetsMake(0, 0, 200, 0)