Установить IBInspectable программно
Я хотел бы установить различные элементы IBInspectable на основе информации, которую я получаю в Интернете. Например, у меня есть IBInspectables для зеленых, красных и оранжевых кругов. Если в запросе указано "зеленый", я хотел бы установить для "проверяемого" значение "Да", а для других - "Нет". То же самое касается двух других. Вы можете увидеть IBInspectables здесь. Я знаю, что могу сделать это с помощью кода, который я там вставил, но есть ли способ переключать их программно?
2 ответа
Любой IBInspectable, это просто свойство, закодированное для просмотра в IB. Так что если у вас есть это:
@IBInspectable var isGreen:Bool? {
didSet {
// code to color circle?
}
}
Вы можете сделать это:
self.isGreen = true
Вы звучите смущенно. Семестр IBInspectable
описывает свойство объекта представления, который имеет @IBInspectable
отметьте это. Это говорит Интерфейсному Разработчику, что вы хотите иметь возможность изменять это свойство из Интерфейсного Разработчика.
Помимо возможности редактирования из Интерфейсного Разработчика, свойство IBInspectable ничем не отличается от любого другого свойства.
Если у вас есть класс CircleView с диаметром свойства:
class FooView: UIView {
@IBInspectable var diameter: CGFloat {
didSet {
//Code to do something with a change to the diameter property
}
}
И у вашего контроллера представления есть объект FooView с выходом, тогда вы можете изменить значение вашего пользовательского свойства в коде, как любое другое свойство:
class MyViewController: UIViewController {
@IBOulet weak var fooView: FooView!
@IBAction func buttonTapped(sender: UIButton) {
fooView.diameter += 5
}
}