简而言之,我想创建一个@IBInspectable
属性,允许您在Storyboard中从下拉菜单中选择事物列表。此外,如果有一种方法来创建分隔线和更好地组织IBInspectables
我想知道这是否也可能。在我的示例中,我想为电话号码创建正则表达式字符串,以便当我转到故事板时,我可以在下拉菜单中选择“电话号码”项,而不是输入正则表达式字符串。
目前我已经将TextField
子类化了,这样我就可以像正则表达式一样添加更多的IBInspectables
(你可以在图片中看到)。因此,这就是我对我的子类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)
}
}
目前还不支持任何列表或数组。
目前以下类型支持@IBInspectable
这是一个包含所有IBInspectable的代码:
@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")!
它在IB中看起来像这样:
就组织而言,您可以通过命名属性来使用分隔符来组织它,以便它们具有相同的前缀。
@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! = ""
呈现为
我想创建一个
@IBInspectable
属性,允许您在Storyboard中从下拉菜单中选择一些内容。
据我所知,目前还不支持列表(数组)。到目前为止,支持的类型是:
Int
CGFloat
Double
String
Bool
CGPoint
CGSize
CGRect
UIColor
UIImage
此外,如果有办法创建分隔线并更好地组织IBInspectables。
我不认为这样的事情是可能的。但也许有人有一个解决方法。