Показывать UILabel в течение * секунд; иначе, чем с NSTimer? - PullRequest
2 голосов
/ 13 февраля 2010

Есть ли другой способ отображения объекта / кнопки / чего угодно, например, 3 секунды, чем с помощью NSTimer?
Могу ли я использовать анимацию для этого?

Ответы [ 3 ]

5 голосов
/ 13 февраля 2010

Вы можете использовать -performSelector:withObject:afterDelay:, хотя он использует таймер внутри.

[theLabel performSelector:@selector(removeFromSuperview) withObject:nil afterDelay:3];

Вы не можете использовать -setHidden: с этим методом, потому что 1 не является объектом, но вы можете использовать NSInvocation.

NSInvocation* invoc = [NSInvocation invocationWithMethodSignature:[theLabel methodSignatureForSelector:@selector(setHidden:)]];
[invoc setTarget:theLabel];
[invoc setSelector:@selector(setHidden:)];
BOOL yes = YES;
[invoc setArgument:&yes atIndex:2];
[invoc performSelector:@selector(invoke) withObject:nil afterDelay:3];
2 голосов
/ 13 февраля 2010

Вы можете попробовать:

[UIVIew beginAnimations:nil context:nil];
[UIView setAnimationDelay:3];
[UIView setAnimationDuration:0.1]; //or lower than 0.1
button.hidden = YES;
[UIView commitAnimations];

Marco

1 голос
/ 29 апреля 2014

Скажем, у вас есть UIImageView с именем myImageView: в вашем .h. файл

IBOutlet UIImageView *myImageView;

В файле .m создайте метод, чтобы скрыть объект:

-(void)hideMyImageView {
    myImageView.hidden = TRUE;
}

Тогда, когда вы хотите скрыть Объект, используйте это:

[self performSelector:@selector(hideMyImageView) withObject:nil afterDelay:3];

Для повторного отображения объекта используйте это:

myImageView.hidden = FALSE;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...