DTBKitWrapper

@dynamicMemberLookup
public struct DTBKitWrapper<Base>

Mainly instance wrapper.

对象容器。

  • me

    Undocumented

    Declaration

    Swift

    public let me: Base
  • Undocumented

    Declaration

    Swift

    public init(_ value: Base)
  • Default unbox, use it to get actual value.

    默认拆箱关键字。

    Usage example:

        let label = UILabel().dtb.text("title").value
    

    Declaration

    Swift

    public var value: Base { get }
  • Chainable for any property.

    链式语法兼容

    Declaration

    Swift

    public subscript<Value>(dynamicMember keyPath: WritableKeyPath<Base, Value>) -> ((Value) -> DTBKitWrapper<Base>) { get }
  • Safe array

    • Sample: list[0] => list.xm[0] ~=: Swift/Collection/Range

    Declaration

    Swift

    public subscript<T>(index: Int?) -> T? where Base == [T] { get }

Available where Base: Collection

  • System json parser.

    纯原生解析

    Declaration

    Swift

    func jsonString() -> String?

Available where Base == String

  • System json parser.

    纯原生解析

    Declaration

    Swift

    func json<T>() -> T?
  • System json parser.

    纯原生解析

    Declaration

    Swift

    func jsonDict() -> [String : Any]?
  • System json parser.

    纯原生解析

    Declaration

    Swift

    func jsonArray() -> [Any]?

Available where Base == CGRect

  • Declaration

    Swift

    public func absorb(barrier: CGSize) -> CGRect
  • Declaration

    Swift

    public func inside(barrier: CGRect) -> CGRect

Available where Base == CGSize

  • Declaration

    Swift

    public var isEmpty: Bool { get }
  • Declaration

    Swift

    public var isSquare: Bool { get }
  • Declaration

    Swift

    public var center: CGPoint { get }
  • Declaration

    Swift

    public var area: CGFloat { get }
  • Declaration

    Swift

    public var longer: CGFloat { get }
  • Declaration

    Swift

    public var shorter: CGFloat { get }
  • Inscribe

    Declaration

    Swift

    public var inSquare: CGSize { get }
  • Circumscribe

    Declaration

    Swift

    public var outSquare: CGSize { get }
  • Declaration

    Swift

    @discardableResult
    public func margin(all value: CGFloat) -> DTBKitWrapper<Base>
  • Declaration

    Swift

    @discardableResult
    public func margin(dx: CGFloat, dy: CGFloat) -> DTBKitWrapper<Base>
  • Declaration

    Swift

    @discardableResult
    public func margin(only insets: UIEdgeInsets) -> DTBKitWrapper<Base>
  • Declaration

    Swift

    @discardableResult
    public func padding(all value: CGFloat) -> DTBKitWrapper<Base>
  • Declaration

    Swift

    @discardableResult
    public func padding(dx: CGFloat, dy: CGFloat) -> DTBKitWrapper<Base>
  • Declaration

    Swift

    @discardableResult
    public func padding(only insets: UIEdgeInsets) -> DTBKitWrapper<Base>
  • Same as UIImageView.contentMode

    Declaration

    Swift

    public func aspectFit(to target: CGSize) -> DTBKitWrapper<Base>
  • Same as UIImageView.contentMode

    Declaration

    Swift

    public func aspectFill(to target: CGSize) -> DTBKitWrapper<Base>

Available where Base == NSDecimalNumber

  • +

    Declaration

    Swift

    public func plus(_ value: Any, behavior: NSDecimalNumberHandler?) -> `Self`?
  • “+”, Use DTB.Configuration.shared.decimalBehavior

    Declaration

    Swift

    public func plus(_ value: Any, scale: Int16 = 2, rounding: NSDecimalNumber.RoundingMode = .plain) -> `Self`?
  • -

    Declaration

    Swift

    public func minus(_ value: Any, behavior: NSDecimalNumberHandler?) -> `Self`?
  • “-”, Use DTB.Configuration.shared.decimalBehavior

    Declaration

    Swift

    public func minus(_ value: Any, scale: Int16 = 2, rounding: NSDecimalNumber.RoundingMode = .plain) -> `Self`?
  • Declaration

    Swift

    public func multi(_ value: Any, behavior: NSDecimalNumberHandler?) -> `Self`?
  • “*”, Use DTB.Configuration.shared.decimalBehavior

    Declaration

    Swift

    public func multi(_ value: Any, scale: Int16 = 2, rounding: NSDecimalNumber.RoundingMode = .plain) -> `Self`?
  • /

    Declaration

    Swift

    public func div(_ value: Any, behavior: NSDecimalNumberHandler?) -> `Self`?
  • “/”, Use DTB.Configuration.shared.decimalBehavior

    Declaration

    Swift

    public func div(_ value: Any, scale: Int16 = 2, rounding: NSDecimalNumber.RoundingMode = .plain) -> `Self`?
  • ^

    Declaration

    Swift

    public func power(_ value: Int, behavior: NSDecimalNumberHandler?) -> `Self`?
  • “^”, Use DTB.Configuration.shared.decimalBehavior

    Declaration

    Swift

    public func power(_ value: Int, scale: Int16 = 2, rounding: NSDecimalNumber.RoundingMode = .plain) -> `Self`?
  • 10^

    Declaration

    Swift

    public func multiPower10(_ value: Int16, behavior: NSDecimalNumberHandler?) -> `Self`?
  • “* 10^”, Use DTB.Configuration.shared.decimalBehavior

    Declaration

    Swift

    public func multiPower10(_ value: Int16, scale: Int16 = 2, rounding: NSDecimalNumber.RoundingMode = .plain) -> `Self`?

Available where Base: NSMutableAttributedString

  • str

    Declaration

    Swift

    public var str: DTBKitWrapper<String> { get }
  • Declaration

    Swift

    public var mStr: DTBKitWrapper<NSMutableString> { get }
  • Append.

    Example:

    let attr = "".dtb.attr.append(
        "text",
        .dtb.create
            .foregroundColor(.black)
            .font(.systemFont(ofSize: 13.0))
            .value
    ).value
    

    Declaration

    Swift

    @discardableResult
    public func append(_ string: String?, _ attributes: [NSAttributedString.Key : Any]?) -> DTBKitWrapper<Base>
  • Same as setAttributes:, search subString with nsRange.

    没搜索到则不做处理。

    Declaration

    Swift

    @discardableResult
    public func setSub(_ subString: String, attrs: [NSAttributedString.Key : Any]? = nil) -> DTBKitWrapper<Base>
  • Same as addAttributes, search subString with nsRange.

    没搜索到则不做处理。

    Declaration

    Swift

    @discardableResult
    public func addSub(_ subString: String, attrs: [NSAttributedString.Key : Any]) -> DTBKitWrapper<Base>

Available where Base == NSRange

  • Declaration

    Swift

    public var isEmpty: Bool { get }

Available where Base: NSString

  • Undocumented

    Declaration

    Swift

    @discardableResult
    public func range(of searchString: String) -> DTBKitWrapper<NSRange>

Available where Base: NumberFormatter

  • Declaration

    Swift

    @discardableResult
    public func string(from number: NSNumber?) -> DTBKitWrapper<String>?
  • Declaration

    Swift

    @discardableResult
    public func number(from string: String?) -> DTBKitWrapper<NSNumber>?
  • Declaration

    Swift

    @discardableResult
    public func decimal(_ value: Int = 2) -> DTBKitWrapper<Base>
  • Declaration

    Swift

    @discardableResult
    public func maxDecimal(_ value: Int = 2) -> DTBKitWrapper<Base>
  • Declaration

    Swift

    @discardableResult
    public func split(by group: String = ",", size: Int = 3) -> DTBKitWrapper<Base>
  • Declaration

    Swift

    @discardableResult
    public func rounded(_ mode: NumberFormatter.RoundingMode = .halfUp) -> DTBKitWrapper<Base>
  • Declaration

    Swift

    @discardableResult
    public func prefix(_ positive: String, negative: String? = nil) -> DTBKitWrapper<Base>
  • Declaration

    Swift

    @discardableResult
    public func suffix(_ positive: String, _ negative: String? = nil) -> DTBKitWrapper<Base>

Available where Base == String

  • ns

    Declaration

    Swift

    public var ns: DTBKitWrapper<NSString> { get }
  • Adapter for NSString.length.

    使用 NS 系列 API 时必须注意 String 和 NSString 的根本不同; 如果对此没有了解,建议全部使用 NSString 来处理。

        let a = "".utf16.count
        let b = NSString(string: "").length
        // (a == b) == true
    

    Declaration

    Swift

    public var count: Int { get }
  • Declaration

    Swift

    public var attr: DTBKitWrapper<NSMutableAttributedString> { get }
  • Declaration

    Swift

    public func has(nsRange: NSRange) -> Bool
  • Declaration

    Swift

    public func isMatches(_ exp: String) -> Bool
  • Declaration

    Swift

    public func isRegular(_ value: DTBKitStringRegulars) -> Bool

Available where Base: BinaryFloatingPoint

  • Declaration

    Swift

    public func rounded(_ roundRule: FloatingPointRoundingRule? = nil) -> DTBKitWrapper<Base>
  • Convert to string.

    转字符串。

    Declaration

    Swift

    public var string: DTBKitWrapper<String> { get }
  • Convert to string with numberFormatter.

    格式化字符串。

    For example:

        /// Use preset formatter
        let a = 2.1.dtb.toString(.dtb.CNY)?.value
    
        /// Custom formatter
        let b = 2.dtb.double.toString(NumberFormatter().dtb.decimal(2).rounded(.halfDown).prefix("¥", negative: "-¥").value)
    

    Declaration

    Swift

    public func toString(_ formatter: NumberFormatter) -> DTBKitWrapper<String>?
  • Convert to NSDecimalNumber with behavior.

    精度处理。

    Declaration

    Swift

    public var nsDecimal: DTBKitWrapper<NSDecimalNumber> { get }

Available where Base == Double

  • Cut dicimal places.

    截取小数后 x 位。

    Example: 1.26.dtb.place(1).value = 1.2

    Declaration

    Swift

    public func places(_ value: Int) -> DTBKitWrapper<Base>

Available where Base: BinaryFloatingPoint

  • Undocumented

    Declaration

    Swift

    public func hf(_ behavior: DTB.HFBehaviors = .scale) -> CGFloat

Available where Base: SignedInteger

  • Declaration

    Swift

    public func toDate() -> Date
  • Convert to string.

    转字符串。

    Declaration

    Swift

    public var string: DTBKitWrapper<String> { get }
  • Convert to string with numberFormatter.

    格式化字符串。

    For example:

        /// Use preset formatter
        let a = 2.1.dtb.toString(.dtb.CNY)?.value
    
        /// Custom formatter
        let b = 2.dtb.double.toString(NumberFormatter().dtb.decimal(2).rounded(.halfDown).prefix("¥", negative: "-¥").value)
    

    Declaration

    Swift

    public func toString(_ formatter: NumberFormatter) -> DTBKitWrapper<String>?
  • Convert to NSDecimalNumber with behavior.

    精度处理。

    Declaration

    Swift

    public var nsDecimal: DTBKitWrapper<NSDecimalNumber> { get }

Available where Base: UIImage

  • Declaration

    Swift

    public func ci() -> DTBKitWrapper<CIImage>?
  • Down sampling to fit.

    图片下采样。将图片等比缩放至最长边与传入的 value 相等。

    refer

    Declaration

    Swift

    public func scale(to value: CGFloat) -> DTBKitWrapper<UIImage>?

    Parameters

    value

    result will aspect fit to value.

    Return Value

    nil if scale fail.

Available where Base == UIViewController

  • Recursion get the top most view controller.

    递归取栈顶。

    refer

    Declaration

    Swift

    public var topMost: DTBKitWrapper<UIViewController>? { get }

Available where Base == CLLocationCoordinate2D

  • Mark it as WGS

    For example:

     let p = CLLocationCoordinate2D(latitude: 10.0, longitude: 10.0)  // WGS
     let result = p.dtb.isWGS.toGCJ  // GCJ
    

    Declaration

    Swift

    public var isWGS: DTBKitCoordinate2DTransfer { get }
  • Mark it as GCJ

    For example:

     let p = CLLocationCoordinate2D(latitude: 10.0, longitude: 10.0)  // GCJ
     let result = p.dtb.isGCJ.toWGS  // WGS
    

    Declaration

    Swift

    public var isGCJ: DTBKitCoordinate2DTransfer { get }
  • Mark it as BD

    For example:

     let p = CLLocationCoordinate2D(latitude: 10.0, longitude: 10.0)  // BD
     let result = p.dtb.isBD.toGCJ  // GCJ
    

    Declaration

    Swift

    public var isBD: DTBKitCoordinate2DTransfer { get }

Available where Base: MKMapView