Живая визуализация настраиваемого компонента с использованием IB_DESIGNABLE из зависимости pod
У меня возникают трудности с использованием IB_DESIGNABLE
в контейнере.
Я создал пользовательский вид, который я обозначил как IB_DESIGNABLE
, и создал образец проекта, который его использует. На данный момент проблем нет.
Проблема возникает при добавлении этого пользовательского представления в качестве зависимости от pod. Несмотря на то, что проект строится и работает успешно, возникает ошибка, когда открывается раскадровка, использующая пользовательский вид. Процесс Live Rendering запускается и пытается отобразить представление в реальном времени внутри построителя интерфейса, но он не работает со следующей ошибкой:
![enter image description here]()
Это слишком плохо, потому что мы теряем Live Rendering, который, на мой взгляд, является одной из лучших функций Xcode 6.
- Cocoapods gem version: 0.34.4
- Версия Xcode: 6.1 (6A1052d)
Я пробовал другие проекты, которые используют IB_DESIGNABLE
и имеют podspec
:
У кого-то еще была такая же проблема в Estimote - Ошибка локального местоположения, но описанное решение означает потерю возможностей Live Rendering.
Кто-нибудь мог использовать компонент IB_DESIGNABLE
через Cocoapods?
Ошибка: "не удалось загрузить конструктивные элементы из пути (null)"
Ответы
Ответ 1
Это исправлено в последней версии Cocoapods (0.36.0.b.1).
Чтобы установить эту версию:
[sudo] gem install cocoapods --pre
Дополнительная информация о Cocoapods с фреймами здесь
Чтобы исправить Error: "failed to load designables from path (null)"
:
platform :ios, '7.0'
use_frameworks!
target 'test' do
pod 'EAColourfulProgressView', '~> 0.1.0'
end
target 'testTests' do
end
Добавьте use_frameworks! к Podfile
.
Ответ 2
При указании своего пользовательского класса в Identity Inspector вы указываете, из какого модуля должен загружаться этот класс? Модуль должен быть именем библиотеки, из которой приходит класс.
Ответ 3
Я разрешил свою проблему, используя use_frameworks!
в PodFile, в первой строке. (не забывайте !
)
Свойства IBInspectable должны быть динамическими, поэтому он запрашивает динамическое связывание библиотеки. Используя вышеприведенную строку, как только вы установите класс элемента управления, он будет строить фреймворк и связывать его, разрешая эти проблемы привязки. Когда я обновился до бета-версии, Parse перестала работать.
Надеюсь, что это поможет кому-то.