- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的 iOS swift 3.0
应用程序中,我在当前的 ViewController 上显示了 UIAlertController
工作表实例。但是我不想在我点击工作表区域外部(变暗的半透明背景)时关闭该工作表,因为我已经必须取消操作。有什么想法吗?
我有带有更多按钮的 MGSwipeTableViewCell。当用户单击“更多”按钮时,将执行以下代码。
func onClickMore(for vmCell: VmCell) {
let sheet = UIAlertController(title: vmCell.vmItem?.vmNameWithoutIp, message: vmCell.vmItem?.ipAddress, preferredStyle: .actionSheet)
sheet.addAction(UIAlertAction(title: "Create Ticket", style: .default) { (action: UIAlertAction) in
})
sheet.addAction(UIAlertAction(title: "Start VM", style: .default) { (action: UIAlertAction) in
})
sheet.addAction(UIAlertAction(title: "Restart VM", style: .default) { (action: UIAlertAction) in
})
sheet.addAction(UIAlertAction(title: "Stop VM", style: .destructive) { (action: UIAlertAction) in
})
sheet.addAction(UIAlertAction(title: "Cancel", style: .cancel) { (action: UIAlertAction) in
})
present(sheet, animated: true) {
sheet.view.superview?.addGestureRecognizer(UITapGestureRecognizer(target: self, action: nil))
}
}
最佳答案
对于 UIAlertController Type as alert
您可以下载 sample project
将手势识别器添加到 alertController superview 以处理用户交互
self.present(alertController, animated: true, completion: {() -> Void in
alertController.view.superview?.addGestureRecognizer(UITapGestureRecognizer(target: self, action: nil)
})
在那个 Action 上什么都不做
更新
let alertController = UIAlertController(title: "Do something", message: "With this", preferredStyle: .alert)
alertController.addAction(UIAlertAction(title: "Done", style: .default) { action in
// perhaps use action.title here
})
self.present(alertController, animated: true, completion: {() -> Void in
alertController.view.superview?.addGestureRecognizer(UITapGestureRecognizer(target: self, action: nil))
})
对于 UIAlertController Type as actionSheet
您可以下载 sample project
你可以通过两种方式做到这一点
选项 1
alert.view.superview.subviews[0] isUserInteractionEnabled = false
选项 2
alert.view.superview?.subviews[0].addGestureRecognizer(UITapGestureRecognizer(target: self, action: nil))
例如
self.present(sheet, animated: true, completion: {() -> Void in
// sheet.view.superview?.subviews[0].isUserInteractionEnabled = false;
sheet.view.superview?.subviews[0].addGestureRecognizer(UITapGestureRecognizer(target: self, action: nil))
})
完整代码
let sheet = UIAlertController(title: "karthik", message: "check with", preferredStyle: .actionSheet)
sheet.addAction(UIAlertAction(title: "Create Ticket", style: .default) { (action: UIAlertAction) in
})
sheet.addAction(UIAlertAction(title: "Start VM", style: .default) { (action: UIAlertAction) in
})
sheet.addAction(UIAlertAction(title: "Restart VM", style: .default) { (action: UIAlertAction) in
})
sheet.addAction(UIAlertAction(title: "Stop VM", style: .destructive) { (action: UIAlertAction) in
})
sheet.addAction(UIAlertAction(title: "Cancel", style: .cancel) { (action: UIAlertAction) in
})
self.present(sheet, animated: true, completion: {() -> Void in
// sheet.view.superview?.subviews[0].isUserInteractionEnabled = false;
sheet.view.superview?.subviews[0].addGestureRecognizer(UITapGestureRecognizer(target: self, action: nil))
})
关于ios - 不要在 iOS 的对话框区域外用点击手势关闭 uialertcontroller 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43199275/
我们如何从第一个警报打开第二个 UIAlert? 第一段代码工作正常,显示了警报。但是我希望能够调用第二个警报 View ,如果选择了第一个警报中的一个选项,就会出现该 View 。 在下面的示例中,
我有一个 Parse Sign Up 和一个 UIAlertController,我希望 UIAlertController 显示一个指示器,但在注册出现错误时被另一个 UIAlertControll
如何在 UIAlertController 外部点击时关闭 UIAlertController? 我可以添加 UIAlertActionStyleCancel 样式的 UIAlertAction 来关
这是我的代码:请检查是否出了什么问题?请给我 UIActionsheet (UIAlertController) 的代码,其中包含 swift 中的数组 let alertA = UIAlertCon
我正在使用 UIAlertController 要求用户输入一个字符串,这个字符串不能为空。为此,我为位于 UIAlertController 上的 UITextField 上的每个编辑事件添加了处理
我想介绍一个 UIAlertController与 UIAlertControllerStyleAlert风格,同时解雇 UIAlertController与 UIAlertControllerSty
我正在使用 UIAlertController 获取用户输入并更新表格单元格。每次当我尝试创建警报时,我都会在控制台中收到以下警告 2015-11-19 17:51:42.034 SimpleTabl
我正在尝试将 UIAlertController 中的推送通知(PN)中的消息从 AppDelegate 呈现到当前 ViewController。如果我发送 1 个 PN,没有问题,并且会显示警报!
我正在尝试从 UIAlertController 文本字段中获取文本。有人可以告诉我我做错了什么,因为它不起作用。我得到一个零返回。 - (IBAction)btnMakeRec {
我正在将我的应用程序移植到 iOS 8.0 并注意到 UIAlertView 已被弃用。 所以我改变了使用 UIAlertController 的方法。这在大多数情况下都有效。 除了,当我的应用程序打
我想根据代码更改警报操作按钮的顺序,我尝试了所有可能性,但不允许我更改顺序。 根据 HIG,取消在右侧 https://developer.apple.com/library/ios/document
在 iOS 8 及更低版本中显示 UIActionSheet当键盘出现时,将在键盘上显示操作表。在 iOS 9 中,情况不再如此。 在我的应用程序中,我们有一个聊天功能,并希望通过键盘显示一个 Act
嗨,我想知道是否可以使用UIAlert播放声音?根据以下文章,这似乎是可能的,但我正在努力将Obj-C转换为Swift。任何帮助表示赞赏! IOS alert message with sound 最
我需要一个系统来隐藏所有UIAlertController当她进入后台时在我的应用程序中。目前我使用 BaseViewController我所有的类(class)UIViewControllers注册
我正在调用带有2个文本字段的UIAlertController(在Obj-C中)。我已经定义了需要在警报中使用的全局UITextField,因为我需要利用UITextFieldDelegate。 我的
我在 View 中添加了一个 UIAlterController。 IT 触发很好,看起来很好,并且有它的 Action ,但是点击取消 Action 什么都不做,它不运行任何代码,即使我添加一个 b
这个问题在这里已经有了答案: How to add textField in UIAlertController? (4 个回答) 4年前关闭。 我可以使用在 UIAlertController 中添
我正在开发一个带有深色主题的 iOS 应用程序,我想使用 UIAlertController .但是,白色警报看起来不合适。即使在黑暗主题的应用程序上使用黑暗主题是否违反人机界面指南 UIAlertC
我正在做一个使用 UIAlertView 的项目,现在的问题是我必须替换所有 UIAlertView's与 UIAlertController's代码中有大约 1250 个。我打算使用现有的 Util
我正在尝试使用操作表样式创建 UIAlertController,但我想将背景颜色更改为灰色。我已经能够找到一种方法来更改 UIAlertController 的背景颜色,但不能更改取消按钮。单独的取
我是一名优秀的程序员,十分优秀!