ADBoundProgressView

@IBDesignable open class ADBoundProgressView: UIProgressView, ADBindable

Creates a progress view 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 progress from or 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 percentage = 100
    var icon: Data = UIImage().toData()

    required init() {

    }
}

// Bind the progress to the percentage field
myProgress.dataPath = "percentage"
  • The name of the field from the date model 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 percentage = 100
        var icon: Data = UIImage().toData()
    
        required init() {
    
        }
    }
    
    // Bind the progress to the percentage field
    myProgress.dataPath = "percentage"
    

    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.

    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 progress view to the enabled field
    myProgressView.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.
    myProgressView.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 progress tint 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.
    myProgress.progressColorPath = "highlightColor"
    

    Remark

    The case and name of the field specified in the progressColorPath 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 progressColorPath: String = ""
  • The name of the field from the date model or forumla (using SQL syntax) used to set the track tint 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.
    myProgress.trackColorPath = "highlightColor"
    

    Remark

    The case and name of the field specified in the trackColorPath 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 trackColorPath: String = ""
  • 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
  • Sets the minimum value for the progress.

    Declaration

    Swift

    @IBInspectable public var minValue: Float
  • Sets the maximum value for the progress.

    Declaration

    Swift

    @IBInspectable public var maxValue: Float
  • Returns true if the value of the control can be edited by the user, else returns false.

    Declaration

    Swift

    public var isMutable: Bool
  • Undocumented

    Declaration

    Swift

    @IBDesignable open class ADBoundProgressView: UIProgressView, ADBindable
  • Sets the value of the progress from the given value. If the value is a String, this function will attempt to convert it to a Float.

    Declaration

    Swift

    public func setValue(_ value: Any)

    Parameters

    value

    The value to set the progress 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 enabled state from.

  • Sets the progress 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 setProgressColor(_ value: Any)

    Parameters

    value

    The value to set the minimum track color from.

  • Sets the track 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 setTrackColor(_ 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 progress.

    Declaration

    Swift

    public func getValue() -> Any

    Return Value

    The value of the progress view as a Float.