Я бы хотел, чтобы, когда вы запрашивали что-то в моем приложении (например, нажатие кнопки или что-то еще), я хотел, чтобы оно отображалось в виде маленького прямоугольника с надписью «загрузка ...», и после завершения загрузки оно исчезает с «». эффект сдвига ». Я сделал простые макеты для описания того, чего я пытаюсь достичь. У вас есть подсказка для меня? Спасибо.
ПРИМЕЧАНИЕ: Я не хочу, чтобы эффект обновления обновлялся (окно загрузки отображается без прокрутки экрана, например, при отправке комментария)
UPDATE:
Я пробовал код Cirrostratus:
- (IBAction)displayLoadingScreen:(id)sender
{
NSLog(@"pressed");
UIView *loadingView = [[UIView alloc] init];
loadingView.frame = CGRectMake(0,-40,320,40);
[loadingView setBackgroundColor:[UIColor blueColor]];
[self.view addSubview:loadingView];
//animate in within some method called when loading starts
[UIView animateWithDuration:1.0
animations:^{
loadingView.frame = CGRectMake(0,0,320,40);
}
completion:^(BOOL finished) {
}];
for (int i = 0; i < 10000; i++) {
NSLog(@"%d", i);
}
//animate out within some method called when loading ends
[UIView animateWithDuration:1.0
animations:^{
loadingView.frame = CGRectMake(0,-40,320,40);
}
completion:^(BOOL finished){
}];
}
Почему представление загрузки загружается в после цикла for? Если вы попробуете это, то перед тем, как он напечатает цикл for и после, выполнит две анимации. Идеи?
ОБНОВЛЕНИЕ 2
- (void)stopLoading {
[UIView animateWithDuration:1.0
animations:^{
loadingView.frame = CGRectMake(0,-40,320,40);
}
completion:^(BOOL finished){
}];
}
- (void)startLoading {
loadingView.frame = CGRectMake(0,-40,320,40);
[loadingView setBackgroundColor:[UIColor blueColor]];
[self.view addSubview:loadingView];
//animate in within some method called when loading starts
[UIView animateWithDuration:1.0
animations:^{
loadingView.frame = CGRectMake(0,0,320,40);
}
completion:^(BOOL finished) {
}];
sleep(5);
[self stopLoading];
}
- (IBAction)displayLoadingScreen:(id)sender
{
NSLog(@"button pressed");
[self startLoading];
}