У меня есть график, построенный в Paintcode, который я показываю в UIView. Он отлично работает в приложении, но не будет отображаться в раскадровке. Я прочитал множество сообщений о переопределении кадра init и init coder. Однако я не могу найти конкретный пример, который помогает мне с моей проблемой, демонстрируя практическое использование этих переопределений.Рендеринг UIView в Swift с @IBDesignable, crash
График отображает 14 переменных для создания гистограммы. Вот код класса
импорт UIKit
@IBDesignable
class graphRisk: UIView {
override func drawRect(rect: CGRect) {
StyleKitGraph.drawRiskGraph(ehsScale: ehsScale, ciScale: ciScale, stratScale: stratScale, qaScale: qaScale, delScale: delScale, leadScale: leadScale, peopScale: peopScale, hrmScale: hrmScale, pmScale: pmScale, costScale: costScale, finScale: finScale, assScale: assScale, itsScale: itsScale, engScale: engScale)
}
}
Он выглядит хорошо в App Store, и это не большое дело, если он не делает, как переменные кодируются, и дизайн в порядке, однако я удалил тег @IBDesignable и все еще ошибался.
Наконец, как мне получить UIView для обновления при входе в контроллер представления, в котором он находился?
Так что вопросы:
1 Как получить рендер для работы над этим примером кода?
2 Есть ли способ не отображать представление и останавливать ошибку таким образом?
3 Нужно ли беспокоиться об ошибке, поскольку приложение работает нормально?
4 Как получить UIView для обновления. Каков синтаксис для .setNeedsDisplay() и т. Д.? Я пробовал много вещей и ничего не обновлял, не перезагружал и не обновлял.
Как всегда, я искренне приветствую любую помощь и благодарю вас.
Вы перезапустили Xcode после удаления @IBDesignable аннотации? Вы очистили свою сборку? – Marc
Спасибо Marc, что перезагрузка устраняет эту проблему. – Midaero
Теперь я разобрался. Существовал сбой в переменных, называемых, что означало, что они не были перезаписаны при переходе на UIView. – Midaero