IOS 中的警报通知

Posted

技术标签:

【中文标题】IOS 中的警报通知【英文标题】:Alert Notification in IOS 【发布时间】:2012-09-12 04:51:25 【问题描述】:

在我的应用程序中,我想显示一个警报,例如用户上线..下线..就像那样。我尝试使用 UIAlertView,但它的大小比我想要的要大。我是ios新手,我在堆栈溢出中进行了探索也没有得到确切的解决方案。任何人都给出一个想法..我必须为这种情况显示什么样的通知。

需要:没有尺寸更小的没有确定按钮的通知,应该在几秒钟后自动隐藏。 (例如:android 中的 Toast 消息)

谢谢。

【问题讨论】:

***.com/questions/7965417/… developer.apple.com/library/mac/#documentation/… 你有模式来捕捉你想要显示警报的动作吗? @All 我需要在我的应用程序处于活动状态时显示。 【参考方案1】:

如果您只想显示一个带有消息的小警报,那么您可以这样做:

UIAlertView *doneAlert = [[UIAlertView alloc] init];
UILabel *lblText = [[UILabel alloc] initWithFrame:CGRectMake(0, 30, 300, 22)];
lblText.text = @"User came Online\n";
lblText.font = [UIFont systemFontOfSize:15.0f];
lblText.numberOfLines = 2;
lblText.textAlignment = UITextAlignmentCenter;
lblText.backgroundColor = [UIColor clearColor];
lblText.textColor = [UIColor whiteColor];
lblText.center = CGPointMake(140, 45);
[doneAlert addSubview:lblText];
[doneAlert show];

它会显示一个只有一条消息的小警告框。

编辑:

像这样自动隐藏:

[NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(closeAlert) userInfo:nil repeats:NO];

然后方法closeAlert

-(void)closeAlert 
    [doneAlert dismissWithClickedButtonIndex:0 animated:YES];

【讨论】:

我们会在几秒钟后自动隐藏它吗? 是的,在这段代码之后,我设置了一个 1 秒的计时器,它会触发一个方法并且该方法会关闭警报,因此您必须将警报对象设为全局。 还有一个问题——当我们使用UIAlertview的时候背景会变暗,像inactive一样,焦点会来到UIAlertview..实时很多人会上线,下线,频繁显示我觉得不会好看,有什么想法吗? 是的,每次任何用户上线或下线时都显示这样的弹出窗口是不可行的,因为您只需在列表中为每个用户添加一个按钮。在用户名旁边,如果用户上线,将按钮颜色更改为绿色,否则保留其他颜色。或者你可以使用任何东西来代替按钮。 您能否更正我的回答,如果它是您问题的真正解决方案,那么它对其他人也有用。谢谢...【参考方案2】:

Apple 没有提供任何内置 API,我猜它的行为类似于 Android 中的烤消息。

【讨论】:

【参考方案3】:

查看像 AJNotificationView 这样的库

或JSNotifier

或像 SVStatusHUD 或 MBProgressHUD 这样的 HUD 库

【讨论】:

【参考方案4】:

你可以试试ALAlertBanner。这是我刚刚完成的一个项目。它具有点击关闭、自动隐藏和其他几个不错的功能。

截图如下:

【讨论】:

以上是关于IOS 中的警报通知的主要内容,如果未能解决你的问题,请参考以下文章

当用户不点击通知警报时如何获取通知数据只需使用obj c点击ios中的应用程序[重复]

如何从 iOS 中的警报通知操作启动视图控制器?

带有选项的 Swift IOS 7 通知警报

iOS 推送通知 - 如何在没有声音的情况下指定警报和徽章?

在 ios 中获取活动的本地通知警报类型或本地通知警报视图按钮单击事件

提醒用户启用 ios 设置中的通知