6

Swift で IBInspectable Int を使用して 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?
4

1 に答える 1

8

ユーザーがストーリーボードに入力できる内容を制限する方法はありません。ただし、計算されたプロパティを使用して、無効な値が格納されるのを防ぐことができます。

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

  var internalShapeType: Int = 0

次にenum、定数の代わりに を使用して、さまざまな形状タイプを内部的に表すこともできます。

于 2015-06-14T16:19:01.327 に答える