Как установить максимальный предел для IBInspectable Int

Я использую IBInspectable Int в Swift для выбора между 4 четырьмя фигурами (0-3), однако в редакторе раскадровки можно установить значение больше 3 и меньше 0, что останавливает работу системы IBDesignable.

Можно ли установить минимальный и максимальный предел значений, которые можно установить в редакторе раскадровки?

let SHAPE_CROSS = 0
let SHAPE_SQUARE = 1
let SHAPE_CIRCLE = 2
let SHAPE_TRIANGLE = 3

@IBInspectable var shapeType: Int = 0
@IBInspectable var shapeSize: CGFloat = 100.0
@IBInspectable var shapeColor: UIColor?

person Harg    schedule 14.06.2015    source источник


Ответы (1)


Невозможно ограничить то, что пользователь может вводить в раскадровке. Однако вы можете предотвратить сохранение недопустимых значений с помощью вычисляемого свойства:

  @IBInspectable var shapeType: Int {
    set(newValue) {
      internalShapeType = min(newValue, 3)
    }
    get {
      return internalShapeType
    }
  }

  var internalShapeType: Int = 0

Затем вы также можете использовать enum вместо констант для внутреннего представления различных типов фигур.

person Ben-G    schedule 14.06.2015