2015-05-28 3 views
1

У меня есть график, построенный в 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() и т. Д.? Я пробовал много вещей и ничего не обновлял, не перезагружал и не обновлял.

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

+0

Вы перезапустили Xcode после удаления @IBDesignable аннотации? Вы очистили свою сборку? – Marc

+0

Спасибо Marc, что перезагрузка устраняет эту проблему. – Midaero

+0

Теперь я разобрался. Существовал сбой в переменных, называемых, что означало, что они не были перезаписаны при переходе на UIView. – Midaero

ответ

0

Не знаете, какую версию Xcode вы используете. Я использую Xcode 6.4.

Я, как и вы, много дней изучал многие веб-сайты и пробовал много решений. Ни один из них не работал. Наконец, я удалил @IBDesignable в свой пользовательский интерфейс. Ошибка не только исчезла, но экземпляр пользовательского класса пользовательского интерфейса был просмотрен в Main.storyboard.

Возможно, в новой разработке Xcode @IBDesignable больше не требуется.

Смежные вопросы