2015-06-14 10 views
6

Sto usando un IBInspectable Int in Swift per scegliere tra 4 quattro forme (0-3), tuttavia è possibile nell'editor dello storyboard impostare un valore maggiore di 3 e meno di 0, che interrompe il funzionamento del sistema IBDesignable.Come impostare un limite massimo per IBInspectable Int

È possibile impostare un limite minimo e massimo di quali valori possono essere impostati nell'editor storyboard?

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? 

risposta

8

Non c'è modo di limitare ciò che un utente può inserire in Storyboard. Tuttavia, si potrebbe evitare che i valori non validi vengano memorizzati utilizzando una proprietà calcolata:

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

    var internalShapeType: Int = 0 

allora si potrebbe anche utilizzare un enum invece di costanti per rappresentare i vostri diversi tipi di forme internamente.

Problemi correlati