Я вижу ряд вопросов по этому поводу, но мало ответов (один ответ решил предыдущую аналогичную проблему, но не этот) .
ПРОБЛЕМА
У меня есть класс IBDesignable. Он происходит от UIControl, но то же самое происходит, если я получаю от UIView.
В основном это выглядит так:
@IBDesignable
open class RVS_Checkbox: UIControl { ... }
Он отлично работает (ссылка ведет на этот проект, который является вставным классом UIControl).
Но он не будет отображаться в Interface Builder. Я получаю эту ошибку:
Вот ошибка, дословно:
The built product "/Volumes/Development/Developer/Xcode/DerivedData/RVS_Checkbox-ficjiiqrddckmjenmsrbrxvihaky/Build/Intermediates.noindex/IBDesignables/Products/Debug-appletvsimulator/RVS_Checkbox" does not exist in the file system. Make sure your built products contains either an application or a framework product.
Во-первых, это ошибка tvOS, и это класс только для iOS. У меня была похожая проблема раньше, и этот ответ решил ее для меня. Я завернул код в #if...#else...#endif, вот так:
#if os(iOS)
@IBDesignable
open class RVS_Checkbox: UIControl { ... }
#else
@IBDesignable
class RVS_Checkbox: UIView { }
#endif
Я даже дал ему пустой заполнитель на случай, если его нужно будет придержать.
Нет игральных костей. Что бы я ни делал, ошибка IB все равно возникает, и элемент не отображается.
Как я уже сказал, он по-прежнему работает нормально, а также отображает надлежащие проверяемые свойства:
но он не будет отображаться.
Вот ошибка рядом с каталогом, на который он жалуется:
Я уверен, что делаю что-то не так, но понятия не имею, что. Я пытался удалить DerivedData, очистить проект, попробовал все 4 цели и т. д.
Нет игральных костей.
Любые идеи?