这是一个模拟模态聚光灯效果的定制控件。它可以用作突出显示您屏幕上的某个部分,以及其他用途。它是完全用 Swift 编写的,使用非常简单。请看下面的代码
//-- Initializing a spotlight view (shortest initialization):
let spotlightView = ALSpotlightView(spotlightCenter: CGPoint(x: 0.5, y: 0,5))
//-- Setting a tap handler (to hide when tapped)
spotlightView.onTapHandler = {
spotlightView.hide
}
//-- Presenting the spotlight view:
spotlightView.show()
您可以通过几种方式来自定义控件的外观和行为。以下是一些您可以执行的操作
在上面的示例代码中,我显示了以最简单方式初始化控件的方法。以下是控件的完整初始化函数签名
//-- Full Initialization:
let spotlightView = ALSpotlightView(spotlightCenter: center,
spotlightRadius: radius,
modalOpacity: opacity,
onTapHandler: nil)
控件有以下属性
spotlightCenter
:一个 CGPoint,指示相对于其父视图的聚光灯中心的 x 和 y 坐标。每个坐标的值介于 0.0 和 1.0 之间。例如,要显示在窗口的中心,请将 spotlightCenter
设置为 CGPoint(x: 0.5, y: 0.5)spotlightRadius
:一个 CGFloat,表示聚光灯效果的半径。modalOpacity
:介于 0.0 和 1.0 之间的 CGFloat,调整聚光灯效果周围区域的 alpha 值。onTapHandler
:一个闭包,具有以下签名:() -> Void
,在聚光灯视图可见后处理触摸行为。初始化控件后,您只需调用 show()
或 hide()
来显示或隐藏它。为了获得更多控制权,这些方法将提供一些其他选项,例如,您是否想使显示/隐藏效果具有动画,以及转换的持续时间。
在 showInView:
函数上,您还可以确定控件应在哪个视图中显示。如果不指定,它将自动出现在应用的关键窗口上。这里是函数的完整签名
//-- Showing spotlight view on a custom view:
spotlightView.showInView(view, animated: true)
//-- Showing spotlight view in one second:
spotlightView.show(animated: true, duration: 1.0)
//-- Hiding spotlight view without animation:
spotlightView.hide(animated: false)
以下示例应该是相当直观的。无论如何,我打算在将来详细阐述这些说明。请随意探索控件以及它的示例代码。
要使用此控件,您可以将 APSpotlightView.swift 类复制到您的项目中,或者使用 CocoaPods 0.36 及以上版本,将以下 pod 添加到您的项目中
pod 'ALSpotlightView'
此组件采用MIT许可。