medium failed designables swift xcode6 ibdesignable

swift - failed - IBInspectable Creación de un menú desplegable y una mejor organización



ibdesignable medium (3)

En resumen, me gustaría crear una propiedad @IBInspectable que le permita seleccionar de una lista de cosas en un menú desplegable cuando se encuentre en los @IBInspectable . Además, si hay una manera de crear divisores y organizar mejor los IBInspectables me gustaría saber si esto también es posible. En mi ejemplo, me gustaría crear cadenas de expresiones regulares para un número de teléfono para que cuando vaya al guión gráfico solo pueda seleccionar el elemento " número de teléfono " en un menú desplegable en lugar de ingresar una cadena de expresiones regulares.

Actualmente, he subclasificado un TextField para poder agregar más IBInspectables como IBInspectables regulares (que se pueden ver en la imagen). Por lo tanto, esto es lo que tengo para mi UITextField :

@IBDesignable public class FRM_TextField: UITextField { @IBInspectable public var regex : String? public var isValid : Bool{ if let unwrappedRegex = regex{ let applied_regex_expression = NSRegularExpression.regularExpressionWithPattern(unwrappedRegex, options: nil, error: nil) let numberOfMatches = applied_regex_expression?.numberOfMatchesInString(text, options: nil, range: NSMakeRange(0, countElements(text))) if(numberOfMatches > 0 ){ return true }else{ return false } } return false } public required init(coder aDecoder: NSCoder) { super.init(coder: aDecoder) } public override init(){ super.init(); } public override init(frame: CGRect) { super.init(frame: frame) } }


Me gustaría crear una propiedad de @IBInspectable que te permita seleccionar de una lista de cosas en un menú desplegable cuando estés en Storyboards.

Hasta donde sé, las listas (matrices) no son compatibles todavía. Los tipos admitidos hasta ahora son:

  • Int
  • CGFloat
  • Double
  • String
  • Bool
  • CGPoint
  • CGSize
  • CGRect
  • UIColor
  • UIImage

Además, si hay una manera de crear divisores y organizar mejor los IBInspectables.

No creo que tal cosa sea posible. Pero tal vez alguien tiene una solución.

Te recomiendo que veas la Sesión 411 de WWDC - Novedades en Interface Builder .


En cuanto a la organización, puede organizarlo con divisores nombrando sus propiedades para que tengan el mismo prefijo.

@IBInspectable var ValText : Bool! = false @IBInspectable var ValEmail : Bool! = false @IBInspectable var ValCreditCard : Bool! = false @IBInspectable var Positives : Bool! = false @IBInspectable var Money : Bool! = false @IBInspectable var Phone : Bool! = false @IBInspectable var ZipCode : Bool! = false @IBInspectable var Street : Bool! = false @IBInspectable var IPAddress : Bool! = false @IBInspectable var MAC : Bool! = false @IBInspectable var AlphaNum : Bool! = false @IBInspectable var AlphaNumSpaces : Bool! = false @IBInspectable var AlphaNumNoSpaces : Bool! = false @IBInspectable var URL : Bool! = false @IBInspectable var ValidationType : String! = ""

Se rinde como


Todavía no hay soporte para listas o matrices.

Actualmente los siguientes tipos soportan @IBInspectable

  • En t
  • CGFloat
  • Doble
  • Cuerda
  • Bool
  • CGPoint
  • CGSize
  • CGRect
  • UIColor
  • UIImage

Aquí hay un código con todos los IBInspectable disponibles:

@IBInspectable var integer: NSInteger = 10 @IBInspectable var float: CGFloat = 10 @IBInspectable var double: Double = 10 @IBInspectable var string: String = "string" @IBInspectable var bool: Bool = true @IBInspectable var point: CGPoint = CGPointMake(1, 0) @IBInspectable var rect: CGRect = CGRectMake(0, 0, 100, 100) @IBInspectable var color: UIColor = UIColor.redColor() @IBInspectable var size: CGSize = CGSizeMake(100, 100) @IBInspectable var image: UIImage = UIImage(named: "Logo")!

Y se ve en IB así: