У меня есть UIViewController.анимация UIView делает flashscrollindicators вели себя странно
Его представление содержит UITableView в качестве подзаголовка. В viewDidAppear UIViewController вызывает UITableView - (void) flashScrollIndicators.
UIViewController также наблюдает уведомление «SomethingHappened». Когда это происходит, UIViewController добавляет еще одно небольшое подвью (30-кратное полупрозрачное полотно с надписью «что-то случилось»). Между тем для содержимогоInset UITableView установлено значение 30px вверху, а contentOffset - -30px.
Все это происходит в анимации UIView, которая красиво подталкивает панель в представлении и немного перемещает содержимое таблицы, не теряя возможности прокрутки содержимого за полупрозрачной панелью позже.
- (void)viewDidLoad
{
[super viewDidLoad];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(addMessageView:) name:@"SomethingHappened" object:nil];
}
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
[self.tableView flashScrollIndicators];
}
- (void)addMessageView {
self.statusMessageView = [[FFStatusMessageView alloc] initWithFrame:CGRectMake(0, -kMessageViewHeight, self.view.frame.size.width, kMessageViewHeight)];
self.statusMessageView.autoresizingMask = UIViewAutoresizingFlexibleWidth;
void (^animations)(void) = ^{
[self.view addSubview:self.statusMessageView];
self.statusMessageView.frame = CGRectMake(0, 0, self.view.frame.size.width, kMessageViewHeight);
self.tableView.contentInset = UIEdgeInsetsMake(kMessageViewHeight, 0,0,0);
if (self.tableView.contentOffset.y == 0) self.tableView.contentOffset = CGPointMake(0, -kMessageViewHeight);
};
[UIView animateWithDuration:0.4 animations:animations];
}
Результат выглядит очень красиво. Вот в чем проблема: «SomethingHappened» обычно публикуется/наблюдается примерно одновременно с тем, что tableview мигает своими индикаторами прокрутки. Это заставляет индикатор прокрутки вести себя очень странно - он скользит слева и над всем содержимым, прежде чем он приземляется на правый край, где он должен быть.
Должен ли я отложить одну из анимаций (индикация вспышки или размещение бара)? Как я могу узнать, безопасно ли начинать секунды?