首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >弹出窗口不指向按钮

弹出窗口不指向按钮
EN

Stack Overflow用户
提问于 2015-01-07 23:49:39
回答 2查看 19.8K关注 0票数 27

我有一个与iPhone和iPad布局都兼容的应用程序。对于iPhone布局,我已经为iPad创建了动作表和弹出窗口。问题是弹出的箭头没有指向我点击的按钮。下面是我的代码..。

代码语言:javascript
复制
let actionSheet = UIAlertController(title: "Choose an option",
            message: "Message",
            preferredStyle: .ActionSheet)
...

if UIDevice.currentDevice().userInterfaceIdiom == UIUserInterfaceIdiom.Pad
{
     // for iPad
     actionSheet.popoverPresentationController?.sourceView = self.view
     actionSheet.popoverPresentationController?.sourceRect = self.view.bounds;
     actionSheet.popoverPresentationController?.permittedArrowDirections = UIPopoverArrowDirection.allZeros;
}

self.presentViewController(actionSheet, animated: true, completion: nil)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-08 00:10:11

sourceViewsourceRect设置为buttonbutton.bounds

您可以根据视图的布局选择permittedArrowDirections。

代码语言:javascript
复制
actionSheet.popoverPresentationController?.sourceView = button
actionSheet.popoverPresentationController?.sourceRect = button.bounds;
actionSheet.popoverPresentationController?.permittedArrowDirections = UIPopoverArrowDirection.Left;

如果按钮是BarButtonItem,请使用以下代码。

代码语言:javascript
复制
actionSheet.popoverPresentationController?.barButtonItem = button
actionSheet.popoverPresentationController?.permittedArrowDirections = UIPopoverArrowDirection.Up;
票数 103
EN

Stack Overflow用户

发布于 2016-04-15 09:54:39

对我来说,使用发送器并将其转换为UIView。

代码语言:javascript
复制
alertController.popoverPresentationController?.sourceView = sender as! UIView
alertController.popoverPresentationController?.sourceRect = sender.bounds

alertController.popoverPresentationController?.permittedArrowDirections = UIPopoverArrowDirection.Up
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27823211

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档