#iphone #objective-c #ios #cocoa-touch
#iPhone #objective-c #iOS #cocoa-touch
Вопрос:
Я пытаюсь отобразить определенное подвидение в ячейке таблицы, когда пользователь проводит пальцем по ячейке. Я использую блочную анимацию, предоставляемую iOS.
Я регистрируюсь для swipe gesture в методе viewDidLoad UITableViewController, используя следующий код.
UISwipeGestureRecognizer *showExtrasSwipe = [[Выделение UISwipeGestureRecognizer] Инициализация с целью:self action:@selector (cellSwipe :)]; showExtrasSwipe.direction = UISwipeGestureRecognizerDirectionLeft; [self.TableView addGestureRecognizer:showExtrasSwipe];
Когда пользователь проводит пальцем по ячейке, я запускаю анимацию переворота, используя следующий код.
-(void)cellSwipe:(UISwipeGestureRecognizer *) жест { NSArray * nib = [[NSBundle mainBundle] loadNibNamed:@"ActionsCell" владелец: self параметры: ноль]; ActionsCell* ActionView = (ActionsCell *)[индекс объекта nib:0]; [UIView transitionWithView:swipedCell длительность: 0.5 параметры: UIViewAnimationOptionTransitionFlipFromLeft анимации:^ { [swipedCell addSubview:ActionView]; } завершение: ноль]; }
В приведенной выше реализации я заметил, что продолжительность анимации переворачивания не является постоянной, и иногда анимация не является плавной. Я заметил, что если я быстро проведу пальцем по ячейке, анимация будет плавной. Но если я провожу пальцем немного медленно, т. Е. Трачу больше времени на пролистывание, анимация переворота не является плавной, а иногда анимация вообще не видна.
Может быть, это потому, что я установил продолжительность анимации равной 0,5 секунды, а часть времени, затрачиваемого на медленный свайп, уменьшает доступную продолжительность анимации? Есть ли какой-либо способ проверить, что swipe завершился? Я использую iOS 4.3
Ценю вашу помощь!!
Ответ №1:
Мы, наконец, решили эту проблему, внедрив обходной путь, слегка увеличив продолжительность перехода с 0,5 с до 0,8 с. Пока не уверен, что может быть правильным решением.