在计算之后,我希望显示一个弹出框或警告框,向用户传递消息。有人知道我在哪里可以找到更多的信息吗?
当前回答
下面是Xamarin.iOS中的c#版本
var alert = new UIAlertView("Title - Hey!", "Message - Hello iOS!", null, "Ok");
alert.Show();
其他回答
下面是Xamarin.iOS中的c#版本
var alert = new UIAlertView("Title - Hey!", "Message - Hello iOS!", null, "Ok");
alert.Show();
对于Swift 3和Swift 4:
由于UIAlertView已弃用,所以在Swift 3上有一个显示Alert的好方法
let alertController = UIAlertController(title: NSLocalizedString("No network connection",comment:""), message: NSLocalizedString("connected to the internet to use this app.",comment:""), preferredStyle: .alert)
let defaultAction = UIAlertAction(title: NSLocalizedString("Ok", comment: ""), style: .default, handler: { (pAlert) in
//Do whatever you want here
})
alertController.addAction(defaultAction)
self.present(alertController, animated: true, completion: nil)
弃用:
这是受选中响应启发的swift版本:
显示AlertView:
let alert = UIAlertView(title: "No network connection",
message: "You must be connected to the internet to use this app.", delegate: nil, cancelButtonTitle: "Ok")
alert.delegate = self
alert.show()
将委托添加到视图控制器:
class AgendaViewController: UIViewController, UIAlertViewDelegate
当用户点击按钮,这段代码将被执行:
func alertView(alertView: UIAlertView, clickedButtonAtIndex buttonIndex: Int) {
}
不同的人对弹出框的理解也不同。我强烈建议阅读临时视图文档。我的回答主要是对本文和其他相关文档的总结。
提醒(举个例子)
警报显示标题和可选消息。在继续之前,用户必须确认它(一键提醒)或做出简单的选择(两键提醒)。你用UIAlertController创建一个警报。
值得引用文档中关于创建不必要警告的警告和建议。
注:
请参见警报视图,但在iOS 8开始,UIAlertView已弃用。你现在应该使用UIAlertController来创建警报。 iOS基础:UIAlertView和UIAlertController(教程)
动作表(举个例子)
操作表为用户提供了一个选择列表。它们要么显示在屏幕底部,要么显示在弹出窗口中,这取决于设备的大小和方向。与警报一样,UIAlertController用于创建动作表。在iOS 8之前,使用UIActionSheet,但现在文档说:
重要:UIActionSheet在iOS 8中已弃用。(注意UIActionSheetDelegate也已弃用。)要在iOS 8及以后版本中创建和管理动作表,请使用带有UIAlertControllerStyleActionSheet首选样式的UIAlertController。
模态视图(给我一个例子)
模态视图是一个自包含视图,它拥有完成任务所需的一切。它可能会占据整个屏幕,也可能不会。要创建一个模态视图,使用一个带有模态表示样式之一的UIPresentationController。
另请参阅
从其他视图控制器显示视图控制器 模态上下文
弹窗(给我举个例子)
弹窗是一种视图,当用户点击某件东西时弹出,当点击掉它时消失。它有一个箭头,显示控件或位置,从哪里进行点击。内容可以是任何你能放到视图控制器中的东西。你用UIPopoverPresentationController做一个弹窗。(在iOS 8之前,UIPopoverController是推荐的方法。)
在过去,弹窗只能在iPad上使用,但从iOS 8开始,你也可以在iPhone上使用它们。
另请参阅
视图控制器:弹窗
通知
通知是声音/震动,提醒/横幅或徽章,即使应用程序没有在前台运行,也会通知用户一些事情。
另请参阅
本地和远程通知编程指南 iOS 8中简单的交互式通知
关于Android toast的注意事项
在安卓系统中,Toast是一条短消息,它会在屏幕上显示一小段时间,然后在不影响用户与应用程序交互的情况下自动消失。
有Android背景的人想知道iOS版本的Toast是什么。这些问题的例子可以在这里、这里、这里和这里找到。答案是,iOS中没有类似Toast的功能。提出的各种变通办法包括:
用子类化的UIView创建你自己的 导入一个模仿Toast的第三方项目 使用带有计时器的无按钮警报
然而,我的建议是坚持使用iOS已有的标准UI选项。不要试图让你的应用程序的外观和行为与Android版本完全相同。想想如何重新包装它,让它看起来和感觉起来像一个iOS应用程序。
虽然我已经写了不同类型的弹出窗口的概述,但大多数人只需要一个警报。
如何实现弹出对话框
class ViewController: UIViewController {
@IBAction func showAlertButtonTapped(_ sender: UIButton) {
// create the alert
let alert = UIAlertController(title: "My Title", message: "This is my message.", preferredStyle: UIAlertController.Style.alert)
// add an action (button)
alert.addAction(UIAlertAction(title: "OK", style: UIAlertAction.Style.default, handler: nil))
// show the alert
self.present(alert, animated: true, completion: nil)
}
}
我更完整的答案在这里。
自iOS 8发布以来,UIAlertView现在已弃用;UIAlertController是替换的。
下面是它在Swift 5中的示例:
let alert = UIAlertController(title: "Hello!", message: "Message", preferredStyle: .alert)
let alertAction = UIAlertAction(title: "OK!", style: .default) { (sender: UIAlertAction) -> Void in
// ... Maybe handle "OK!" being tapped.
}
alert.addAction(alertAction)
// Show.
present(alert, animated: true) { () -> Void in
// ... Maybe do something once showing is complete.
}
如您所见,API允许我们实现对动作和呈现警报时的回调,这非常方便!
对于较旧的Swift版本:
let alert = UIAlertController(title: "Hello!", message: "Message", preferredStyle: UIAlertControllerStyle.alert)
let alertAction = UIAlertAction(title: "OK!", style: UIAlertActionStyle.default)
{
(UIAlertAction) -> Void in
}
alert.addAction(alertAction)
present(alert, animated: true)
{
() -> Void in
}
推荐文章
- 如何更改导航栏上“后退”按钮的标题
- 我如何获得iOS 7默认的蓝色编程?
- UITapGestureRecognizer破坏UITableView didSelectRowAtIndexPath
- 在Objective-C中@property保留,赋值,复制,非原子
- 6.5英寸屏幕的App store截图大小是多少?
- 我如何在NSAttributedString中创建一个可点击的链接?
- iOS测试/规格TDD/BDD以及集成和验收测试
- 停止UIWebView垂直“弹跳”?
- 启动屏幕故事板不显示图像
- 是否可以为iPhone应用程序(如YouTube和地图)注册一个基于http+域的URL方案?
- 模拟器错误fbssystemservicdomain代码4
- 改变UISegmentedControl的字体大小
- 我可以强制UITableView隐藏分隔符之间的空单元格吗?
- 获取用户当前位置/坐标
- 获得推送通知,而应用程序在前台iOS