我正在使用iOS 7应用程序,该应用程序将具有为文章添加书签的功能。一旦用户为文章添加书签,我想显示文本消息(例如标签)。然后,文本消息应在例如2秒后自动消失。我怎样才能做到这一点?
UIAlertView
不是我想要的。
答案 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函数。在此功能中,再次隐藏视图