一个可定制和动画的弹出气球视图,具有数学上正确的平滑圆角。 还提供对 UIBezierPath 的访问。
这个库允许您创建一个用于弹出气球的 UIBezierPath,带有一个茎和一个圆角矩形。 气球具有数学上正确的平滑圆角,并且可以定制。
还有一个 BalloonShapeView,它是一个具有可动画气球的视图。
可以通过在 BalloonConfiguration 对象上设置属性来配置气球
cornerRadius:气球的圆角半径,可以是 .oval 表示椭圆形,或 .fixed(value) 表示固定值,或 none 表示没有圆角。
stem:茎的配置,具有以下属性
edge:茎连接到的边:.bottom,.top,.left 或 .rightoffset:默认情况下,茎位于边的中心。 使用此属性来偏移它。 正偏移将茎向右(或向下)移动,负偏移将茎向左(或向上)移动size:茎的大小。cornerSmoothening:如何平滑茎与其连接的边之间的角。 可以是 enabled,disabled 或 custom(widthRatio, heightRatio)。tipSmoothenWidth:我们应该在多少个点上平滑茎的尖端。 0 表示尖端是尖锐的,值越大,尖端用弧线平滑的程度越高。要创建 UIBezierPath 气球,您可以调用
UIBezierPath.init(balloonInRect:configuration:),指定气球要放入的矩形和气球的配置。 整个气球和茎都将适合给定的矩形。
您也可以调用 UIBezierPath.init(balloonWithRect:configuration),这将创建一个气球路径,其中茎位于给定矩形的外部。
如果您需要一个作为视图的气球,请使用 BalloonShapeView。
使用 configuration 参数或便利属性(例如 stemWidth,stemHeight,cornerRadius,stemOffset)配置气球。 这些便利属性也可以从 InterfaceBuilder 访问。
要为配置的更改添加动画效果,请在动画块中调用 layoutIfNeeded()
UIView.animateWithDuration(0.25) {
// modify configuration
balloonView.configuration.cornerRadius = .fixed(40)
balloonView.layoutIfNeeded()
}
BalloonShapeView 公开了 CAShapeLayer 的大多数属性,例如 fillColor 和 strokeColor 以及 lineWidth。