Swift @IBИнспективные свойства в структуре, не отображаемой в Interface Builder
Я пытаюсь создать структуру пользовательского UIViewController с помощью @IBInspectable
для редактирования его свойств в Interface Builder.
public class BWWalkthroughPageViewController: UIViewController {
@IBInspectable public var speed: CGPoint = CGPointZero
@IBInspectable public var speedVariance: CGPoint = CGPointZero
@IBInspectable public var animationType: String = ""
@IBInspectable public var animateAlpha: Bool = false
}
Если исходный код рамки находится в примерном проекте приложения, свойства отображаются в Attribute Inspector, как показано на рисунке ниже,
![IBInspectable]()
но если я добавлю встроенную фреймворк в проект приложения, свойства не будут отображаться в инспекторе.
Можно ли показать проверенные свойства встроенной структуры для Interface Builder? Если возможно, как?
Вот исходный код рамки, который разветвляется из проекта без рамки.
https://github.com/yoichitgy/BWWalkthrough/tree/support-carthage
Ответы
Ответ 1
Создание фреймворка
Создайте инфраструктуру по умолчанию и добавьте туда свои быстрые файлы.
![введите описание изображения здесь]()
Затем установите ваши быстрые файлы как общедоступные.
![введите описание изображения здесь]()
После этого скопируйте фреймворк и добавьте его в папку проекта
![введите описание изображения здесь]()
Используйте фреймворк
Добавьте фреймворк в свой проект
![введите описание изображения здесь]()
Создайте новый viewController в своем раскадровке и установите класс viewController, который находится в вашей инфраструктуре
![введите описание изображения здесь]()
Вот и все. Вы увидите свои свойства в раскадровке.
Ответ 2
Причина, по которой атрибуты не будут отображаться в интерфейсе Builder в вашем приложении, но сделать это в вашей структуре, потому что ваша инфраструктура не является целью вашего приложения. Самый простой способ убедиться, что он включен, - это использовать Cocoapods, он отлично справится с вашей задачей, и установка будет относительно простой.
Замечание: IBDesignable
и IBInspectable
действительно не имеют никакого отношения друг к другу. С помощью IBInspectable
вы можете подвергать ограниченное количество типов свойств интерфейсу Builder или раскадровке (например, NSNumber
, Bool
, UIColor
и т.д.). IBDesignable
однако используется для просмотра рендеринга ваших представлений в баннере или раскадровке. Они очень удобны для совместного использования, т.е. Изменения свойств для проверяемых атрибутов и просмотра отображаемого вида.