У меня есть UITableViewCell
, который использует автоматическую компоновку. Когда пользователь выбирает ячейку, я хочу отобразить дополнительную информацию в представлении деталей, которое скользит вниз, расширяя нижнюю часть ячейки.Анимировать просмотр подробных сведений в UITableViewCell
У меня возникли проблемы с определением правильного пути для этого.
Метод transitionFromView:toView:duration:options:completion:
не подходит, потому что я не заменяю один вид другим.
Метод transitionWithView:duration:options:animations:completion:
выглядел так, будто он должен делать трюк, но я не могу понять правильный способ достижения своих целей, используя его.
Это то, что я пытался сначала (C#, но Objective-C/Swift эквиваленты должны быть очевидны):
private void AnimateDetailsIntoView()
{
this.detailsView.Hidden = true;
this.ContentView.ConstrainLayout(() =>
this.detailsView.Top() == this.nameLabel.Bottom() &&
this.detailsView.Bottom() == this.ContentView.Bottom() - Layout.StandardSiblingViewSpacing &&
this.detailsView.Left() == this.nameLabel.Left() &&
this.detailsView.Right() == this.nameLabel.Right());
this.AddSubview(this.detailsView);
UIView.Transition(
this,
0.2,
UIViewAnimationOptions.ShowHideTransitionViews | UIViewAnimationOptions.TransitionFlipFromBottom,
() => { },
() => { });
}
Это приводит к ячейке таблицы "Spinning Around", но детали смотреть не на самом деле показать. Даже если я удалю строку, которая скрывает detailsView
, я все еще не вижу ее после анимации.
Я подозреваю, что это связано с расположением, но я не уверен, как «вырастить» ячейку по вертикали.
Может ли кто-нибудь сказать мне, что я делаю неправильно?
PS. Я понимаю, что еще нужно сделать, как только я получу начальную анимацию. Мне нужно будет оживить любую ранее выбранную ячейку и удалить ее панель сведений.
Это значит, что вы хотите расширить ячейку uitableview? – Vizllx
@Vizllx: да. Когда пользователь выбирает ячейку, она расширяется вниз, чтобы показать детали. –