2015-06-14 66 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,而不是常量在内部代表不同的形状类型。

相关问题