make inputAccessoryBar delete button easier to tap

This commit is contained in:
True Zhuanjia
2026-04-26 17:36:35 +08:00
parent d28573dcd4
commit 9d2df484d1
+13 -1
View File
@@ -41,6 +41,7 @@ private enum InputAccessoryBarMetrics {
static let releaseDuration: TimeInterval = 0.18
static let reorderAnimationDuration: TimeInterval = 0.2
static let deleteButtonSize: CGFloat = 22
static let deleteButtonHitExpansion: CGFloat = 10
static let dragScale: CGFloat = 1.06
static let dragLiftY: CGFloat = -2
static let editOverlayDimAlpha: CGFloat = 0.001
@@ -48,6 +49,17 @@ private enum InputAccessoryBarMetrics {
static let edgeAutoScrollStep: CGFloat = 6
}
@available(iOS 13.0, *)
private final class InputAccessoryDeleteButton: UIButton {
override func point(inside point: CGPoint, with event: UIEvent?) -> Bool {
let expandedBounds = bounds.insetBy(
dx: -InputAccessoryBarMetrics.deleteButtonHitExpansion,
dy: -InputAccessoryBarMetrics.deleteButtonHitExpansion
)
return expandedBounds.contains(point)
}
}
@available(iOS 13.0, *)
private struct InputAccessoryBarButtonRecord {
let buttonLabel: String
@@ -396,7 +408,7 @@ private final class InputAccessoryCapsuleButton: UIButton {
@available(iOS 13.0, *)
private final class InputAccessoryBarItemView: UIView {
let button: InputAccessoryCapsuleButton
let deleteButton = UIButton(type: .system)
let deleteButton = InputAccessoryDeleteButton(type: .system)
var deleteHandler: (() -> Void)?
init(title: String) {