Как увеличить область попадания UIGestureRecognizer?

Я использую несколько распознавателей жестов на некоторых представлениях, но иногда взгляды слишком малы, и это трудно ударить. Использование распознавателей необходимо, так как я могу увеличить область попадания?

Если вы делаете это для пользовательского UIView , вы должны иметь возможность переопределить метод hitTest:withEvent: ::

 - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event { CGRect frame = CGRectInset(self.bounds, -20, -20); return CGRectContainsPoint(frame, point) ? self : nil; } 

В приведенном выше коде добавляется 20-точечная граница вокруг представления. Нажатие в любом месте этой области (или на самом представлении) указывает на попадание.

Если вы используете UIImageView как кнопку, вы можете использовать следующее расширение (Swift 3.0):

 extension UIImageView { open override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? { if self.isHidden || !self.isUserInteractionEnabled || self.alpha < 0.01 { return nil } let minimumHitArea = CGSize(width: 50, height: 50) let buttonSize = self.bounds.size let widthToAdd = max(minimumHitArea.width - buttonSize.width, 0) let heightToAdd = max(minimumHitArea.height - buttonSize.height, 0) let largerFrame = self.bounds.insetBy(dx: -widthToAdd / 2, dy: -heightToAdd / 2) // perform hit test on larger frame return (largerFrame.contains(point)) ? self : nil } } 

Подобно расширению UIButton

  • Графика iOS Core Как удалить рисунок
  • Swift: UISearchBar: получить текст при нажатии кнопки поиска
  • Измените размер файла UISlider thumbImage
  • Выполнение многих операций UIKit, блокирующих основной поток
  • Как сделать копию для UILabel?
  • Замена UIImageJPEGRепредставление с помощью jpegData UIGraphicsImageRenderer
  • viewWillLayoutSubviews получает слишком много имен
  • Слабая ссылка UIPopoverBackgroundView
  • Центр UIButton по горизонтали со словом-оберткой
  • Использование контроллера View, управляющего двумя другими контроллерами View
  • collectionView необязательный в UICollectionViewController
  • Interesting Posts

    Управление несколькими версиями приложения iOS

    iPhone с использованием повторяющихся локальных уведомлений

    Функция событий iOS 6 js не вызывается, если в ней есть setTimeout

    Обмен изображениями на instagram в ios

    Как ограничить ввод нулевого значения в coredata?

    Что происходит с вызовами Console.WriteLine в выпусках Xamarin.iOS?

    self.navigationController pushViewController не работает

    Async скачать внутри didReceiveRemoteNotification

    IOS7,8,9 получают предыдущие действия с уведомлением о push-уведомлении

    покупка в приложении, несколько подписей на автоматическое продление подписки, имеющих разные сроки

    Пользовательский интерфейс с универсальным приложением для iPhone

    Чтение текущего местоположения с использованием карты в Iphone

    AS3 Сохранение локального файла в iOS

    Как преобразовать массив enum в массив int

    в моем контроллере view я добавляю subview, у которого есть xib, я устанавливаю автозапуск в xib, но когда я добавляю представление в контроллер представления, он не работает

    Давайте будем гением компьютера.