在iOS 7中完成某些操作后显示文本警报

时间:2014-04-08 07:15:39

标签: ios ios7 alert uialertview

我正在使用iOS 7应用程序,该应用程序将具有为文章添加书签的功能。一旦用户为文章添加书签,我想显示文本消息(例如标签)。然后,文本消息应在例如2秒后自动消失。我怎样才能做到这一点? UIAlertView不是我想要的。

6 个答案:

答案 0 :(得分:1)

在这种情况下,Toast消息将是理想的解决方案。我更喜欢使用iToast。这是链接:https://github.com/ecstasy2/toast-notifications-ios

根据网站:

  

您可以根据iToast的重要性将其添加到屏幕上的任何位置。当它具有中等重要性时,我们用重力显示它们,当重要性很低时,它是非常重要的中心。

答案 1 :(得分:1)

创建标签,根据需要自定义标签,将其添加到屏幕并隐藏它:

UILabel *notification = [[UILabel alloc] init];
notification.text = ...
notification.frame = ...
notification.hidden = YES;
[self.view addSubView:notification];

然后,当你需要显示它,并在延迟后隐藏它:

notification.hidden = NO;
[UIView animateWithDuration:2
                      delay:2
                    options:UIViewAnimationOptionCurveLinear
                 animations:^{
                     notification.hidden = YES;
                 }
                 completion:nil];

请注意,hidden属性不会设置动画。如果想要动画,请使用notification.alpha。我使用animateWithDuration:只是因为它有一个简单的延迟参数。

答案 2 :(得分:1)

如果你在Android中提到某种吐司。在iOS中没有这样的东西,你必须自己实现它或使用像Ratikanta Patra这样的库来提及它。

您可以尝试这样的代码段,并根据您的需要进行调整。

UIView *toast = [[UIView alloc] initWithFrame:CGRectMake(40, 200, 240, 40)];
toast.backgroundColor = [UIColor blackColor];
[self.view addSubview:toast];
toast.alpha = 0;

[UIView animateWithDuration:0.4 animations:^{
    toast.alpha = 1;
} completion:^(BOOL finished) {
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 1 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
        [UIView animateWithDuration:0.4 animations:^{
            toast.alpha = 0;
        } completion:^(BOOL finished) {
            [toast removeFromSuperview];
        }];
    });
}];

答案 3 :(得分:0)

您可以使用计时器在出现后计算2秒。 2秒后隐藏你的标签。

答案 4 :(得分:0)

SKTipAlertView - https://github.com/SaKKo/SKTipAlertView

希望这有帮助。

答案 5 :(得分:0)

虽然这是一个显示提示的库,但它可以在您的情况下完美地完成,只需稍加修改:https://github.com/chrismiles/CMPopTipView

相反,您可以使用自己的UITextview和NSTimer类来创建自己的自定义控件。在使视图可见时使用以下功能触发计时器

[NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(autoDismissAnimatedDidFire:) userInfo:userInfo repeats:NO]; 这将在2.0秒后调用autoDismissAnimatedDidFire函数。在此功能中,再次隐藏视图