UIKit 常用辅助视图 (ShapeView, GradientView, ContentTextView, RoundRectView, CircleView, FixedSizeView)
这是一小部分常用的 UIView 子类集合。例如,GradientView
封装了 CAGradientLayer
,并支持动态 UIColor
以及基于 UIView 的动画。
一个小的 UITextView
子类,禁止选择文本和滚动,但允许与链接交互。如果您想显示带有嵌入链接的复杂文本,但不希望文本被选中,这将非常有用。
一个封装了 CAGradientLayer
的视图,支持动态 UIColor
和基于 UIView 的动画。
常用辅助方法包括
setVerticalLinearGradient() (设置垂直线性渐变)
setHorizontalLinearGradient() (设置水平线性渐变)
setVerticalLinearFadeOut() (设置垂直线性淡出)
setHorizontalLinearFadeOut() (设置水平线性淡出)
setVerticalLinearFadeIn() (设置垂直线性淡入)
setHorizontalLinearFadeIn() (设置水平线性淡入)
setColors(_:, locations: startPoint: endPoint: type:) (设置颜色,位置,起始点,结束点,类型)
每个方法都有等效的 init
初始化方法
init(verticallyFrom:to:) (垂直方向从...到...)
init(horizontallyFrom:to:) (水平方向从...到...)
init(verticallyFadingOutFrom:) (垂直方向从...淡出)
init(verticallyFadingInTo:) (垂直方向淡入到...)
init(horizontallyFadingOutFrom:) (水平方向从...淡出)
init(horizontallyFadingInTo:) (水平方向淡入到...)
init(colors: locations:startPoint:endPoint:type) (颜色,位置,起始点,结束点,类型)
示例
let fadeOutView = GradientView(verticallyFadingOutFrom: .white)
addSuview(fadeOutView)
一个提供方便访问 cornerRadius
(圆角半径), borderWidth
(边框宽度) 和 borderColor
(边框颜色) 的视图。支持动态 UIColor
和基于 UIView 的动画。
示例
let roundRectView = RoundRectView(cornerRadius: 12, borderWidth: 1, borderColor: .separator, clipsToBounds: true)
一个封装了 CAShapeLayer
的视图。支持动态 UIColor
和基于 UIView 的动画。
示例
let shapeView = ShapeView()
shapeView.fillColor = .red
shapeView.path = UIBezierPath(ovalIn: CGRect(x:0, y: 0, width: 100, height: 100))
一个始终保持圆形并通过调整 cornerRadius
来实现的视图。大小可以通过 fixedSize
设置,并且是可动画的。
示例
let circleView = CircleView(size: 44, backgroundColor: .red, clipsToBounds: true)
let otherCircle = CircleView(size: 20, backgroundColor: .red)
一个设置了约束使其始终保持固定大小、固定宽度或固定高度的视图。可以使用参数轻松更改大小,并且大小更改可以强制其父视图进行布局。
当您有一个固定且可能动态变化的固定大小时,此视图非常有用:您无需跟踪约束。
示例
let view = FixedSizedView(width: 100, automaticallyLayoutSuperviewOnChange: .whenInAnimationBlock)
view.fixedWidth = 200
let otherView = FixedSizedView(size: CGSize(width: 100, height: 200))
otherView.fixedHeight = 30