ADBoundLabel

@IBDesignable open class ADBoundLabel: UILabel, ADBindable

Creates a label that can be bound to a value from a data model that conforms to the Codable protocol when placed on a ADBoundViewController view. Use the dataPath property to specify the field from the bound data model to populate the label from or supply a formula in a SQL like syntax.

Example:

// Given the following class
class Category: ADDataTable {

    enum CategoryType: String, Codable {
        case local
        case web
    }

    static var tableName = "Categories"
    static var primaryKey = "id"
    static var primaryKeyType: ADDataTableKeyType = .computedInt

    var id = 0
    var added = Date()
    var name = ""
    var description = ""
    var enabled = true
    var highlightColor = UIColor.white.toHex()
    var type: CategoryType = .local
    var icon: Data = UIImage().toData()

    required init() {

    }
}

// Bind the label to the name field
myLabel.dataPath = "name"
  • The name of the field from the date model or forumla (using SQL syntax) used to populate the value from.

    Example:

    // Given the following class
    class Category: ADDataTable {
    
        enum CategoryType: String, Codable {
            case local
            case web
        }
    
        static var tableName = "Categories"
        static var primaryKey = "id"
        static var primaryKeyType: ADDataTableKeyType = .computedInt
    
        var id = 0
        var added = Date()
        var name = ""
        var description = ""
        var enabled = true
        var highlightColor = UIColor.white.toHex()
        var type: CategoryType = .local
        var icon: Data = UIImage().toData()
    
        required init() {
    
        }
    }
    
    // Bind the label to the name field
    myLabel.dataPath = "name"
    

    Remark

    The case and name of the field specified in the dataPath property must match the case and name from the data model bound to the ADBoundViewController. Optionally, the value can be a forumla using a subset of the SQL syntax.

    Declaration

    Swift

    @IBInspectable public var dataPath: String = ""
  • The name of the field from the date model or forumla (using SQL syntax) used to set the enabled state from.

    Example:

    // Given the following class
    class Category: ADDataTable {
    
        enum CategoryType: String, Codable {
            case local
            case web
        }
    
        static var tableName = "Categories"
        static var primaryKey = "id"
        static var primaryKeyType: ADDataTableKeyType = .computedInt
    
        var id = 0
        var added = Date()
        var name = ""
        var description = ""
        var enabled = true
        var highlightColor = UIColor.white.toHex()
        var type: CategoryType = .local
        var icon: Data = UIImage().toData()
    
        required init() {
    
        }
    }
    
    // Bind the label to the enabled field
    myLabel.enabledPath = "enabled"
    

    Remark

    The case and name of the field specified in the enabledPath property must match the case and name from the data model bound to the ADBoundViewController. Optionally, the value can be a forumla using a subset of the SQL syntax.

    Declaration

    Swift

    @IBInspectable public var enabledPath: String = ""
  • The name of the field from the date model or forumla (using SQL syntax) used to set the hidden state from.

    Example:

    // Given the following class
    class Category: ADDataTable {
    
        enum CategoryType: String, Codable {
            case local
            case web
        }
    
        static var tableName = "Categories"
        static var primaryKey = "id"
        static var primaryKeyType: ADDataTableKeyType = .computedInt
    
        var id = 0
        var added = Date()
        var name = ""
        var description = ""
        var enabled = true
        var quantity = 0
        var highlightColor = UIColor.white.toHex()
        var type: CategoryType = .local
        var icon: Data = UIImage().toData()
    
        required init() {
    
        }
    }
    
    // Set the hidden state based on a formula.
    myLabel.hiddenPath = "quantity > 0"
    

    Remark

    The case and name of the field specified in the hiddenPath property must match the case and name from the data model bound to the ADBoundViewController. Optionally, the value can be a forumla using a subset of the SQL syntax.

    Declaration

    Swift

    @IBInspectable public var hiddenPath: String = ""
  • The name of the field from the date model or forumla (using SQL syntax) used to set the text color from.

    Example:

    // Given the following class
    class Category: ADDataTable {
    
        enum CategoryType: String, Codable {
            case local
            case web
        }
    
        static var tableName = "Categories"
        static var primaryKey = "id"
        static var primaryKeyType: ADDataTableKeyType = .computedInt
    
        var id = 0
        var added = Date()
        var name = ""
        var description = ""
        var enabled = true
        var quantity = 0
        var highlightColor = UIColor.white.toHex()
        var type: CategoryType = .local
        var icon: Data = UIImage().toData()
    
        required init() {
    
        }
    }
    
    // Set the text color based on a formula.
    myLabel.colorPath = "highlightColor"
    

    Remark

    The case and name of the field specified in the colorPath property must match the case and name from the data model bound to the ADBoundViewController. Optionally, the value can be a forumla using a subset of the SQL syntax.

    Declaration

    Swift

    @IBInspectable public var colorPath: String = ""
  • Defines the type of formatter that will be used to format the value of this text field before it is displayed to the user. The currently supported formats are number, masked or date.

    Declaration

    Swift

    @IBInspectable public var formatType: String = ""
  • Works with the formatType property to format the value that is displayed to the user based on the pattern given in this string. For example, $###,###.00 for a number or mm/dd/yyyy for a date.

    Declaration

    Swift

    @IBInspectable public var formatPattern: String = ""
  • Built-in number formatter used with the formatType and formatPattern properties to automatically format numeric values.

    Declaration

    Swift

    public var numberFormatter = NumberFormatter()
  • Built-in date formatted used with the formatType and formatPattern properties to automatically format date/time values.

    Declaration

    Swift

    public var dateFormatter = DateFormatter()
  • Built-in masked string formatter used with the formatType and formatPattern properties to automatically format string values.

    Declaration

    Swift

    public var maskedFormatter = ADMaskedStringFormatter()
  • Provides a link to the ADBoundViewController that the control is bound to.

    Declaration

    Swift

    public weak var controller: ADBoundViewController?
  • Provides a unique ID that is assigned to the control when it is bound to a ADBoundViewController.

    Remark

    You should never set or change this number yourself, this value will be managed by the ADBoundViewController and is used to handle form and keyboard events.

    Declaration

    Swift

    public var formID: Int = -1
  • Returns true if the value of the control can be edited by the user, else returns false.

    Declaration

    Swift

    public var isMutable: Bool
  • Initializes a new instance of the control.

    Declaration

    Swift

    required public init?(coder aDecoder: NSCoder)
  • Sets the value of the label from the given value. If the value is an Int or Float it will be converted to a string. If the value is a Bool it will be converted to the string values of true or false. If a formatType and formatPattern have been specified, they will be applied to the value before it is set.

    Declaration

    Swift

    public func setValue(_ value: Any)

    Parameters

    value

    The value to set the label to.

  • Sets the enabled state of the control from the given value. If the value is an Int or Float, 0 and 1 will be converted to false and true. If the value is a String, yes, on, true, 1 will be converted to true, all other values will result in false.

    Declaration

    Swift

    public func setEnabledState(_ value: Any)

    Parameters

    value

    The value to set the enabled state from.

  • Sets the hidden state of the control from the given value. If the value is an Int or Float, 0 and 1 will be converted to false and true. If the value is a String, yes, on, true, 1 will be converted to true, all other values will result in false.

    Declaration

    Swift

    public func setHiddenState(_ value: Any)

    Parameters

    value

    The value to set the hidden state from.

  • Sets the text color from the given value. If the value is a string, this routine will assume it holds a hex color specification in the form #RRGGBBAA.

    Declaration

    Swift

    public func setTextColor(_ value: Any)

    Parameters

    value

    The value to set the text color from.

  • Sets any control specific bound states (such as colors) with the values from the given ADRecord.

    Declaration

    Swift

    public func setControlSpecificStates(against data: ADRecord)

    Parameters

    data

    The raw data to bind the additional states to.

  • Returns the value of the label.

    Declaration

    Swift

    public func getValue() -> Any

    Return Value

    The value of the label as a String.