2015-06-14 24 views
6

我在Swift中使用IBInspectable Int在4個四個形狀(0-3)之間進行選擇,但是故事板編輯器中可以設置大於3且小於3的值比0,這停止了IBDesignable系統的工作。如何設置IBInspectable Int的最大限制

是否可以設置故事板編輯器中可以設置的最小值和最大值?

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? 

回答

8

沒有辦法限制用戶可以在Storyboard中輸入的內容。但是,你可以防止無效的值從使用計算特性被存儲:

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

    var internalShapeType: Int = 0 

那麼你也可以使用一個enum,而不是常量在內部代表不同的形狀類型。