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 推送通知 - 如何在没有声音的情况下指定警报和徽章?