Answers:
是啊,一个UIAlertView
可能是你在找什么。这是一个例子:
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"No network connection"
message:@"You must be connected to the internet to use this app."
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
[alert release];
如果您想做更多花哨的事情,例如在中显示一个自定义UI UIAlertView
,您可以UIAlertView
在该init
方法中子类化并放入自定义UI组件。如果要在UIAlertView
出现一个按钮后对按钮按下做出响应,则可以设置delegate
以上内容并实施该- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
方法。
您可能还需要看一下UIActionSheet
。
出现此问题的不同人员通过弹出框表示不同的意思。我强烈建议您阅读临时视图文档。我的回答主要是此文档和其他相关文档的摘要。
警报显示标题和可选消息。用户必须在继续操作之前确认它(一键警报)或做出简单选择(两键警报)。您使用创建警报UIAlertController
。
值得引用文档中有关创建不必要警报的警告和建议。
笔记:
UIAlertView
开始。您UIAlertController
现在应该使用创建警报。操作表为用户提供了选择列表。根据设备的尺寸和方向,它们会出现在屏幕底部或弹出窗口中。与警报一样,a UIAlertController
用于制作操作表。在使用iOS 8之前UIActionSheet
,但现在文档中说明:
重要信息:
UIActionSheet
已被弃用iOS中8(注意,UIActionSheetDelegate
也已经过时。)创建和iOS 8的管理动作片,后来,改用UIAlertController
了preferredStyle
的UIAlertControllerStyleActionSheet
。
一个模式的看法是,有它需要完成任务的一切自包含的视图。它可能会或可能不会占据全屏。要创建一个模式的看法,使用UIPresentationController
同一个模态呈现方式。
也可以看看
一酥料饼是接出它的时候出现,当用户点击的东西,消失的景色。它有一个箭头,显示了进行点击的控件或位置。内容几乎可以放在View Controller中。您使用制作了一个弹出框UIPopoverPresentationController
。(在iOS 8之前UIPopoverController
是推荐的方法。)
过去,弹出式窗口仅在iPad上可用,但从iOS 8开始,您也可以在iPhone上使用它们(请参见此处,此处和此处)。
也可以看看
通知是声音/振动,警报/横幅或标志,即使应用程序未在前台运行,它们也会通知用户。
也可以看看
在Android中,Toast是一条短消息,它会在屏幕上显示一小段时间,然后在不中断用户与应用程序的交互的情况下自动消失。
来自Android背景的人们想知道Toast的iOS版本是什么。他可以在这里,这里,这里和这里找到这些问题的一些例子。答案是在iOS中没有Toast等效。提出的各种变通办法包括:
UIView
但是,我的建议是坚持使用iOS随附的标准UI选项。不要试图让您的应用外观和行为与Android版本完全相同。考虑如何重新打包它,使其外观和感觉像一个iOS应用程序。
自iOS 8发行以来,UIAlertView
现已弃用;UIAlertController是替代品。
以下是它在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
}
如您所见,该API允许我们为操作和呈现警报时实现回调,这非常方便!
已为Swift 4.2更新
let alert = UIAlertController(title: "Hello!", message: "Message", preferredStyle: UIAlertController.Style.alert)
let alertAction = UIAlertAction(title: "OK!", style: UIAlertAction.Style.default)
{
(UIAlertAction) -> Void in
}
alert.addAction(alertAction)
present(alert, animated: true)
{
() -> Void in
}
更新于iOS 8.0
从iOS 8.0开始,您将需要使用UIAlertController如下:
-(void)alertMessage:(NSString*)message
{
UIAlertController* alert = [UIAlertController
alertControllerWithTitle:@"Alert"
message:message
preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction* defaultAction = [UIAlertAction
actionWithTitle:@"OK" style:UIAlertActionStyleDefault
handler:^(UIAlertAction * action) {}];
[alert addAction:defaultAction];
[self presentViewController:alert animated:YES completion:nil];
}
在我的示例中,self是UIViewController,它为弹出式窗口实现了“ presentViewController”方法。
大卫
对于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)
不推荐使用:
这是受检查响应启发的快速版本:
显示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) {
}
尽管我已经写过各种弹出窗口的概述,但是大多数人只需要一个警报。
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)
}
}
我的完整答案在这里。
这是Xamarin.iOS中的C#版本
var alert = new UIAlertView("Title - Hey!", "Message - Hello iOS!", null, "Ok");
alert.Show();