12345678910111213141516171819202122232425262728293031323334 |
- //
- // BKButton.swift
- // Bark
- //
- // Created by huangfeng on 2020/9/23.
- // Copyright © 2020 Fin. All rights reserved.
- //
- import UIKit
- protocol AlignmentRectInsetsOverridable: AnyObject {
- var alignmentRectInsetsOverride: UIEdgeInsets? { get set }
- }
- protocol HitTestSlopable: AnyObject {
- var hitTestSlop: UIEdgeInsets { get set }
- }
- class BKButton: UIButton, HitTestSlopable, AlignmentRectInsetsOverridable {
- var hitTestSlop = UIEdgeInsets.zero
- override func point(inside point: CGPoint, with event: UIEvent?) -> Bool {
- if hitTestSlop == UIEdgeInsets.zero {
- return super.point(inside: point, with: event)
- }
- else {
- return self.bounds.inset(by: hitTestSlop).contains(point)
- }
- }
- var alignmentRectInsetsOverride: UIEdgeInsets?
- override var alignmentRectInsets: UIEdgeInsets {
- return alignmentRectInsetsOverride ?? super.alignmentRectInsets
- }
- }
|