Интеграция UITableView в аннотацию выноски iOS

Мое приложение показывает карту с некоторыми точками. Я хотел бы визуализировать представление таблицы внутри выноски, когда коснулся один из выводов. Я нашел что-то подобное здесь, но это в Objective-C (я хотел бы использовать чистый Swift-подход), и для этого требуется отключить автоматическую компоновку для пользовательского представления (которого я предпочел бы избежать).

введите описание изображения здесь

Как я могу реализовать это решение или где я могу найти библиотеку, которая это делает?

1 ответ

Решение

Вот один из способов:

У вашего основного контроллера есть UIPopoverPresentationControllerDelegateи переопределите его метод:

func adaptivePresentationStyleForPresentationController(controller: UIPresentationController) -> UIModalPresentationStyle {
    return .None
}

Установите распознаватель жестов касания в viewDidLoad():

let tapGesture = UITapGestureRecognizer(target: self, action: Selector("tappedOnMap:"))
yourView.userInteractionEnabled = true
yourView.numberOfTapsRequired = 1
yourView.addGestureRecognizer(tapGesture)

Определите "tappedOnMap", чтобы открыть поповер:

func tappedOnMap(sender: UITapGestureRecognizer) {
    let location = sender.locationInView(self.view)
    let storyboard = UIStoryboard(name: "Main", bundle: nil)        
    let vc = storyboard.instantiateViewControllerWithIdentifier("tableViewControllerClass") as! tableViewControllerClass
    vc.modalPresentationStyle = .Popover
    vc.preferredContentSize = CGSizeMake(200, 150)

    if let popoverController = vc.popoverPresentationController {
        // Create popover at tapped point.
        popoverController.delegate = self
        popoverController.sourceRect = CGRectMake(location.x, location.y, 20, 10)
        popoverController.sourceView = self.view
        self.presentViewController(vc, animated: true, completion: nil)
    }
}

Определите "tableViewControllerClass", чтобы иметь представление таблицы, и прикрепите его к сцене в раскадровке. Надеюсь, это поможет.

Другие вопросы по тегам