Хобрук: Ваш путь к мастерству в программировании

Распознаватель касаний UIView не работает

Попытка заставить работать распознавание тапа на UIView:

@IBOutlet weak var mapView_: GMSMapView!
@IBOutlet weak var viewInfo: UIView!

override func viewDidLoad() {
    super.viewDidLoad()
    /* MapView inital values & dependencies */
    let initialLocation = CLLocationCoordinate2DMake(37.78, -122.41)
    let camera = GMSCameraPosition.cameraWithTarget(initialLocation, zoom: 10)

    /* Set up MapView */
    mapView_.camera = camera
    mapView_.myLocationEnabled = true
    mapView_.delegate = self

    var selfTap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: "viewTapped:")
    viewInfo.addGestureRecognizer(selfTap)
    viewInfo.userInteractionEnabled = true
    mapView_.insertSubview(viewInfo, aboveSubview: mapView_)
}
func viewTapped(recognizer: UIGestureRecognizer) -> Void{
    NSLog("tapped")
}

Не распознает кран.

Есть идеи ? Спасибо


  • можешь выложить весь код? потому что, если оба ответа не работают, нам нужно увидеть, что действительно не так 19.08.2015

Ответы:


1

Проблема решена"

Проблема возникла из-за того, что viewInfo является подвидом представления googlemaps. Я не мог делегировать событие касания в контроллер представления, поэтому я предположил, что событие «нажатие» отправлялось в представление карты.

Я вынул viewInfo из mapview и немного поиграл с ограничениями, чтобы разместить их там, где я хотел. Таким образом, родителем viewInfo теперь является viewcontroller, и событие касания распознается без каких-либо проблем.

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

Спасибо за вашу помощь.

19.08.2015

2

Вам нужно удалить : из handleTap: или вам нужно изменить метод на handleTap(sender: UITapGestureRecognizer)

19.08.2015
  • Пробовал оба варианта, так и не распознал. ТЮ 19.08.2015

  • 3

    использовать:

    func handleTap(sender: UITapGestureRecognizer) {
        NSLog("tapped")
    }

    19.08.2015
  • мой код: var selfTap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: viewTapped: selfTap.numberOfTapsRequired = 1 backGrayView.addGestureRecognizer(selfTap); backGrayView.userInteractionEnabled = true; func viewTapped(recognizer: UIGestureRecognizer) -> Void{, если распознаватель .numberOfTouches() == 1 {КОД ЗДЕСЬ} } 19.08.2015
  • Странно, все равно не работает, скопируйте и вставьте свой код с небольшой адаптацией на мой взгляд. Возможно ли быть подвидом над картой Google? mapView_.insertSubview(viewInfo, вышеSubview: mapView_) 19.08.2015
  • как насчет того, чтобы вывести свой взгляд на передний план? 19.08.2015
  • это уже, я не могу взаимодействовать с картой, нажав на подвид 19.08.2015
  • Новые материалы

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

    Как построить любой стол
    Я разработчик программного обеспечения. Я люблю делать вещи и всегда любил. Для меня программирование всегда было способом создавать вещи, используя только компьютер и мое воображение...

    Обзор: Машинное обучение: классификация
    Только что закончил третий курс курса 4 часть специализации по машинному обучению . Как и второй курс, он был посвящен низкоуровневой работе алгоритмов машинного обучения. Что касается..

    Разработка расширений Qlik Sense с qExt
    Использование современных инструментов веб-разработки для разработки крутых расширений Вы когда-нибудь хотели кнопку для установки переменной в приложении Qlik Sense? Когда-нибудь просили..

    React Hooks: основы деструктуризации массива
    Kent C. Dodds написал классный пост о том, как грядущая функция React под названием Hooks работает на капоте. Предстоящий хук React useState основан на деструктурировании массива, давайте..

    Пакеты R, используемые в Tesla
    Добро пожаловать обратно! R — очень популярный язык программирования, используемый множеством компаний, включая Tesla! Итак, давайте взглянем на некоторые пакеты R, которые использует Tesla...

    Сокращение и слияние токенов для эффективных моделей VL: обзор
    Часто в задачах, связанных с компьютерным зрением и НЛП, вычислительно затратная и требующая большого объема памяти обработка становится препятствием для более быстрого логического вывода модели, а..