UIView(QMUI_Border)

@interface UIView (QMUI_Border)

UIView (QMUI_Border) 为 UIView 方便地显示某几个方向上的边框。

系统的默认实现里,要为 UIView 加边框一般是通过 view.layer 来实现,view.layer 会给四条边都加上边框,如果你只想为其中某几条加上边框就很麻烦,于是 UIView (QMUI_Border) 提供了 qmui_borderPosition 来解决这个问题。

Warning

注意如果你需要为 UIView 四条边都加上边框,请使用系统默认的 view.layer 来实现,而不要用 UIView (QMUI_Border),会浪费资源,这也是为什么 QMUIViewBorderPosition 不提供一个 QMUIViewBorderPositionAll 枚举值的原因。
  • 设置边框的位置,默认为 QMUIViewBorderLocationInside,与 view.layer.border 一致。

    Declaration

    Objective-C

    @property (nonatomic) QMUIViewBorderLocation qmui_borderLocation;

    Swift

    var qmui_borderLocation: QMUIViewBorderLocation { get set }
  • 设置边框类型,支持组合,例如:borderPosition = QMUIViewBorderPositionTop|QMUIViewBorderPositionBottom。默认为 QMUIViewBorderPositionNone。

    Declaration

    Objective-C

    @property (nonatomic) QMUIViewBorderPosition qmui_borderPosition;

    Swift

    var qmui_borderPosition: QMUIViewBorderPosition { get set }
  • 边框的大小,默认为PixelOne。请注意修改 qmui_borderPosition 的值以将边框显示出来。

    Declaration

    Objective-C

    @property (nonatomic) CGFloat qmui_borderWidth;

    Swift

    var qmui_borderWidth: CGFloat { get set }
  • 边框的颜色,默认为UIColorSeparator。请注意修改 qmui_borderPosition 的值以将边框显示出来。

    Declaration

    Objective-C

    @property (nonatomic, strong, nullable) UIColor *qmui_borderColor;

    Swift

    var qmui_borderColor: UIColor? { get set }
  • 虚线 : dashPhase默认是0,且当dashPattern设置了才有效 qmui_dashPhase 表示虚线起始的偏移,qmui_dashPattern 可以传一个数组,表示“lineWidth,lineSpacing,lineWidth,lineSpacing…”的顺序,至少传 2 个。

    Declaration

    Objective-C

    @property (nonatomic) CGFloat qmui_dashPhase;

    Swift

    var qmui_dashPhase: CGFloat { get set }
  • Undocumented

    Declaration

    Objective-C

    @property(nullable, nonatomic, copy)   NSArray <NSNumber *> *qmui_dashPattern

    Swift

    var qmui_dashPattern: [NSNumber]? { get set }
  • border的layer

    Declaration

    Objective-C

    @property (nonatomic, strong, readonly, nullable) CAShapeLayer *qmui_borderLayer;

    Swift

    var qmui_borderLayer: CAShapeLayer? { get }