3

我有一个用于匹配纸牌游戏的 UILabel,上面写着“好匹配!” 例如,如果您有匹配项,并且我想在通知用户消息后使其消失。

用什么方法做到这一点?我可以让它消失..?谢谢。

这是我的 updateUI 方法:

    -(void) updateUI {

    for (UIButton *cardButton in self.cardButtons) {
        Card *card = [self.game cardAtIndex:[self.cardButtons indexOfObject:cardButton]];
        [cardButton setTitle:card.contents forState:UIControlStateSelected];
        [cardButton setTitle:card.contents forState:UIControlStateSelected|UIControlStateDisabled];
        cardButton.selected = card.isFaceUp;
        cardButton.enabled = !card.unplayble;
        if (card.unplayble) {
            cardButton.alpha = 0.1;
        }
        self.scoreCounter.text = [NSString stringWithFormat:@"Score: %d", self.game.score];


        if (self.game.notification) {
            [UIView animateWithDuration:2 animations:^{
                self.notificationLabel.text = [NSString stringWithFormat:@"%@", self.game.notification];
                self.notificationLabel.alpha = 0;
            }];
        }

    }
}
4

2 回答 2

3

这将在两秒钟内淡出标签。更改为animateWithDuration:您想要的任意时间

if (self.game.notification == nil) {
[UIView animateWithDuration:2 animations:^{
self.notificationLabel.alpha = 0;
}];
}

如果你想更改文本,试试这个(我现在不能测试它,所以它可能不起作用)

[UIView animateWithDuration:2 animations:^{
self.notificationLabel.text = @"text you want to change it to";
}];

然后,当你想再次使用标签时,你必须将self.notificationLabel.alphaback 设置为 1。所以尝试

if (self.game.notification) {
self.notificationLabel.alpha = 1;
[UIView animateWithDuration:2 animations:^{
self.notificationLabel.text = [NSString stringWithFormat:@"%@", self.game.notification];
self.notificationLabel.alpha = 0;
}];
}
于 2013-03-11T22:50:27.837 回答
-2

我不认为这是可能的。您很可能需要在 Interface Builder 中将 UILabel 替换为 NSView 并使用其中包含的绘图函数来绘制具有透明度的文本。

于 2013-03-11T22:50:33.887 回答