矩形选择器

一个用于选择矩形区域的 UI 组件。

Github issues Github forks Github stars Github top language

演示

Simulator.Screen.Recording.-.iPhone.15.Pro.-.2024-09-11.at.17.13.34-1.mov

用法

基本用法如下。

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

自定义 UI

各种属性可以使用 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 事件

选择区域更改事件可以通过委托接收,也可以通过 UIControl 的 valueChanged 事件接收。

selector.addTarget(
    self,
    action: #selector(valueChanged(_:)),
    for: .valueChanged
)

@objc
func valueChanged(_ sender: RectangleSelectorView) {
    print("value changed", sender.selectedRect)
}

许可证

RectangleSelector 基于 MIT 许可证发布。请参阅 LICENSE