- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我想知道如何使用这样的按钮创建弹出框。
回答:
UIActionSheet * actionSheet = [[UIActionSheet alloc] initWithTitle: nil
delegate: self
cancelButtonTitle: nil
destructiveButtonTitle: nil
otherButtonTitles: @"Take Photo",
@"Choose Existing Photo", nil];
[actionSheet showFromRect: button.frame inView: button.superview animated: YES];
委托(delegate)对象类中的其他地方...
-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
if (buttonIndex == 0) {
// take photo...
}
else if (buttonIndex == 1) {
// choose existing photo...
}
}
最佳答案
这是一个UIActionSheet
。在 iPhone 上,它从底部开始动画。在 iPad 上,它出现在弹出窗口中。
假设您在按下按钮时执行此操作:
UIActionSheet * actionSheet = [[UIActionSheet alloc] initWithTitle: nil
delegate: self
cancelButtonTitle: nil
destructiveButtonTitle: nil
otherButtonTitles: @"Take Photo",
@"Choose Existing Photo", nil];
[actionSheet showFromRect: button.frame inView: button.superview animated: YES];
在 iOS8+ 中,你应该使用新的 UIAlertController
类:
UIAlertController * alertController = [UIAlertController alertControllerWithTitle: nil
message: nil
preferredStyle: UIAlertControllerStyleActionSheet];
[alertController addAction: [UIAlertAction actionWithTitle: @"Take Photo" style: UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
// Handle Take Photo here
}]];
[alertController addAction: [UIAlertAction actionWithTitle: @"Choose Existing Photo" style: UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
// Handle Choose Existing Photo here
}]];
alertController.modalPresentationStyle = UIModalPresentationPopover;
UIPopoverPresentationController * popover = alertController.popoverPresentationController;
popover.permittedArrowDirections = UIPopoverArrowDirectionUp;
popover.sourceView = sender;
popover.sourceRect = sender.bounds;
[self presentViewController: alertController animated: YES completion: nil];
或在 Swift 中
let alertController = UIAlertController(title: nil, message: nil, preferredStyle: .ActionSheet)
alertController.addAction(UIAlertAction(title: "Take Photo", style: .Default, handler: { alertAction in
// Handle Take Photo here
}))
alertController.addAction(UIAlertAction(title: "Choose Existing Photo", style: .Default, handler: { alertAction in
// Handle Choose Existing Photo
}))
alertController.modalPresentationStyle = .Popover
let popover = alertController.popoverPresentationController!
popover.permittedArrowDirections = .Up
popover.sourceView = sender
popover.sourceRect = sender.bounds
presentViewController(alertController, animated: true, completion: nil)
关于ios - UIPopover 如何使用这样的按钮制作弹出窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10744260/
如何在 iPad 中从另一个 Popover Controller 打开一个 Popover Controller ?我想对此有一些想法,请分享您的宝贵想法。 最佳答案 如果您打算在 App Stor
几个月来我一直在开发应用程序,没有出现任何弹出窗口问题。突然间,今天的弹出窗口变得一团糟。 我已经尝试了几种不同的方法,无论我何时通过按下弹出窗口中的按钮或点击弹出窗口之外的按钮来关闭弹出窗口,应用程
在我的应用程序中,我有 3 个 UIPopOver。当用户点击工具栏中的按钮时,它们就会出现。如果弹出框已经打开(如 -willAnimateRotationToInterfaceOrientatio
我是 iPad 开发人员的新手, 我在我的应用程序中使用UIPopover,当我选择弹出窗口中的任何行时,我的弹出窗口不会将其隐藏在 View 中,当我触摸外部任何地方时它就会隐藏屏幕。 我想在用户选
我有一个导航 Controller 作为弹出窗口的 View ,因此顶部有一个导航栏。 在第一个 View 中,没有导航栏提示,因此它保持通常的小尺寸。 然后,我插入下一个需要提示的 View Con
是否可以呈现一个没有任何类型的箭头指向某处的弹出窗口? 最佳答案 是的,可以这样做: [self.popoverController presentPopoverFromBarButtonItem:
如何从导航堆栈中消除弹出框。我有一个导航 Controller 作为弹出框的根 Controller ,堆栈中有 2 个 taes 。这样第一个表格 View 会插入第二个表格 View ,而第二个表
所以,我一直在研究互联网,但无法解决这个问题,因为我看到的所有答案都与 View 层数少于我的弹出窗口有关,如果这有意义的话。 无论如何,我有一个主视图,它打开一个弹出窗口,其中包含一个 UINavi
我有一个 iPad 应用程序(XCode 5、iOS 6、ARC 和 Storyboards),它有一个用于显示 UIView 的类。在一个单独的类中,我想在特定条件下显示 UIPopover。 我的
我有一个 iPad 应用程序,我在其中显示了一个 UIPopover View 。我想根据它在屏幕上的位置设置弹出窗口的背景。是否可以获取 UIPopover 相对于屏幕的准确位置? 最佳答案 试试这
我的应用程序有月 View ,对于一个月中的每一天,长按都会显示一个弹出窗口。 我已经使用 self.view setExclusiveTouch:YES 来防止一次出现多个弹出窗口,但偶尔仍然允许出
我想让 Popover 位于单元格标签的右侧,但它目前位于左上角。如何更改它以使其到达正确的位置? 我使用以下方法创建自定义单元格: var currentCell:CustomTableViewCe
我有一个 UIPopoverController,我试图从导航栏中的 UIBarButtonItem 显示它。尽管在 popover 的内容 viewController 中为 tableview 设
有没有办法使 UIPopOver 透明(alpha = 0.75 左右)。不幸的是,UIPopOver 没有 alpha 属性。我需要显示一个弹出窗口,以便它下面的 View 仍然部分可见。任何想法
我想知道如何使用这样的按钮创建弹出框。 回答: UIActionSheet * actionSheet = [[UIActionSheet alloc] initWithTitle: nil
我希望弹出窗口在应用程序首次以纵向模式启动时出现,而不是隐藏它并要求用户在弹出窗口出现之前点击按钮。我试图通过 Google 和其他 StackOverflow 线程之类的工具找到解决方案,但我一直无
我正在使用以下代码在我的 View 中显示弹出窗口 imagePopOver = [[UIPopoverController alloc]; initWithContentViewController
我正在尝试复制 iPad 密码 View 。这基本上是一个没有箭头方向的弹出窗口,它锁定背景 View 有点像模态视图 Controller 。 我的问题:有没有办法在呈现弹出窗口时锁定底层背景 Vi
我们面临一个问题,即当弹出窗口内使用 UIActionSheet 样式的alertController 时,弹出窗口大小会发生变化。这是在我们升级代码库 iOS13 后发生的 示例代码:https:/
我认为,我遇到了一个问题,即在释放UIPopoverController之前将其重新分配,这很奇怪,因为UIPopoverController是一个类变量。任何帮助将不胜感激。 这是错误,我正在 Mo
我是一名优秀的程序员,十分优秀!