5

向用户实现文本+图像消息的常规(或最佳)方式是什么,而这个“警报/弹出窗口”应该只出现 1 秒钟(如在有限时间内奖品图片上的消息“你赢了!”) .

4

2 回答 2

15

如果您只是想在一段时间内显示一条浮动消息并让它消失,只需制作一个标签和一个简单的动画即可。此示例将显示消息 1 秒,然后在 0.3 秒内消失(并假设为 ARC):

- (void)showMessage:(NSString*)message atPoint:(CGPoint)point {
    const CGFloat fontSize = 24;  // Or whatever.

    UILabel* label = [[UILabel alloc] initWithFrame:CGRectZero];
    label.backgroundColor = [UIColor clearColor];  
    label.font = [UIFont fontWithName:@"Helvetica-Bold" size:fontSize];  // Or whatever.
    label.text = message;
    label.textColor = [UIColor blueColor];  // Or whatever.
    [label sizeToFit];

    label.center = point;

    [self addSubview:label];

    [UIView animateWithDuration:0.3 delay:1 options:0 animations:^{
        label.alpha = 0;
    } completion:^(BOOL finished) {
        label.hidden = YES;
        [label removeFromSuperview];
    }];
}

只需将此作为方法添加到您的根视图中即可。

于 2013-08-27T22:00:21.627 回答
1

如果您不想要用户交互,那么请使用 HUD。

那里有很好的实现SVProgressHUDMBProgressHUD

它们通常用于进度,但您可以使用它们向用户显示临时信息。

例如,您可以使用以下方法轻松显示 1 秒消息和自定义图像SVProgressHUD

[SVProgressHUD showImage:[UIImage imageNamed:@"won-image"] status:@"You Won!"];
于 2013-08-27T21:40:29.437 回答