swift -气泡框指针不指向它的调用方

标签: ios Swift
发布时间: 2017/3/6 23:31:34
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我在相当定期气泡框但无论我放置它,在它以上呼叫按钮稍点。

我通过storyboard连接气泡框。在 popoverviewcontroller 内我放置视图,其中包含的按钮。Popoverviewcontroller viewdidload() 的代码是︰

override func viewDidLoad() {
    super.viewDidLoad()

    self.preferredContentSize = popoverView.frame.size
        }

会发生因为我把它放到顶部按钮太近?

enter image description here

解决方法 1:

您需要通过使用源代码视图和 sourceRect 属性为气泡框的锚点。 使的呈现控制器 prepareForSegue 函数用于设置属性的气泡像下面的框︰

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if segue.identifier == "SegueIdentifier" {
        let destController = segue.destinationViewController
        let popover = destController.popoverPresentationController;

        destController.popoverPresentationController!.delegate = self
        destController.preferredContentSize = CGSize(width: 320, height: 186)
        popover?.sourceView = self.button;
        popover?.sourceRect = self.button.bounds
    }
}

您还可以提供 preferredContentSize 在这里作为这样的代码是更加模块化和你内容视图控制器也可使用其他地方。

在我的理解,在链接流行铺垫的storyboard中意味着你有提供源代码视图。根据苹果公司的文档,以提供锚点源代码视图结合使用 sourceRect。我猜是否你不提供 sourceRect (在您使用storyboard的情况下),操作系统占用这就是为什么气泡框的箭头是不适当的视图的原点。指定合适的 sourceRect 将会改善你的成绩。

官方微信
官方QQ群
31647020