У меня есть подпредставление, которое я хочу показать, чтобы создать эффект исчезновения. Для этого я пытаюсь:
- Показать
- Fade it
Для этой цели я установил метод showFade в своем суперпредставлении (Fader - это подпредставление, определенное ранее. SomeImage уже определено).
- (void)showFade {
[Fader setHidden:NO];
[Fader setImage: someImage];
[[Fader animator] setHidden:YES];
}
Проблема в том, что он работает впервые, а подпредставление исчезает, но больше никогда не появляется. Что я делаю не так?
РЕДАКТИРОВАТЬ: В соответствии с просьбой, вот более полный пример кода
- (void)awakeFromNib {
Fader = [[NSImageView alloc] initWithFrame: [self bounds]];
Images[0] = @"Tower";
Images[1] = @"Desert";
Images[2] = @"Fall";
image = 0;
[NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(showFader:) userInfo:nil repeats:YES];
[self addSubview: Fader];
[self nextImage];
[super awakeFromNib];
}
- (void)showFader: (NSTimer*)timer {
[Fader setImage: [self image]];
[Fader setHidden:NO];
[[Fader animator] setHidden:YES];
[self nextImage];
}
- (void)nextImage {
if (image == 2) {
image = 0;
}
else {
image++;
}
[self setImage: [NSImage imageNamed: Images[image]]];
}
Итак, в основном, у меня есть повторяющийся таймер, заставляющий родительский NSImageView циклически переключаться между массивом изображений и заставляющий «Фейдер» отображаться с предыдущим изображением и исчезать. Проблема в том, что он появляется только один раз.