一个用于选择矩形区域的 UI 组件。
基本用法如下。
let selector = RectangleSelectorView()
selector.delegate = self
// Set initial rectangle area
selector.set(
selectedFrame: .init(
origin: .init(x: 50, y: 50),
size: .init(width: 100, height: 100)
)
)
// Show selector ui for imageView
// (To select an area of the `imageView` range)
selector.show(for: imageView)
// Close
selector.dismiss()
// Selected rect
let selected: CGRect = selector.selectedRect
各种属性可以使用 Config
模型进行自定义。
var config: Config = .default
// Custom...
config.guideConfig.lineWidth = 2
config.guideConfig.lineColor = .cyan
// Apply customized config
selector.apply(config)
宽高比可以固定。
// Fixed aspect ratio (height / width)
selector.aspectMode = .fixed(0.5)
// Free
selector.aspectMode = .free
可以指定选择区域的最小尺寸。
selector.minimumSize = .init(width: 100, height: 100)
选择区域更改事件可以通过委托接收,也可以通过 UIControl 的 valueChanged
事件接收。
selector.addTarget(
self,
action: #selector(valueChanged(_:)),
for: .valueChanged
)
@objc
func valueChanged(_ sender: RectangleSelectorView) {
print("value changed", sender.selectedRect)
}
RectangleSelector 基于 MIT 许可证发布。请参阅 LICENSE