2

我的应用程序显示了带有一些针点的地图。当触摸其中一个引脚时,我想在标注气泡内可视化一个表格视图。我在这里找到了类似的东西,但它在 Objective-C 中(我想要一种纯 Swift 方法),它需要禁用自定义视图的自动布局(我希望避免)。

在此处输入图像描述

我怎样才能实现这个解决方案,或者我可以在哪里找到一个可以做到这一点的库?

4

1 回答 1

2

这是一种方法:

让你的主控制器实现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”以获得您的表格视图,并将其附加到情节提要中的场景。希望有帮助。

于 2016-01-03T20:57:19.403 回答