Es gibt viele ähnliche Fragen zu Stack Overflow über UITableViewCell
Höhe Animation, aber nichts funktioniert für neue iOS8 Auto-Layout-getriebene Tabellenansicht. Mein Problem:Wie kann UITableViewCell mit Auto-Layout animiert werden?
Benutzerdefinierte Zelle:
@property (weak, nonatomic) IBOutlet iCarousel *carouselView;
@property (weak, nonatomic) IBOutlet UIPageControl *pageControl;
@property (weak, nonatomic) IBOutlet UIButton *seeAllButton;
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *carouselHeightConstraint;
Hinweis carouselHeightConstraint
. Dies ist eine Höhenbeschränkung für die Unteransicht der Inhaltsansicht (die einzige Unteransicht).
Höhe wird beispielsweise auf 230.0f
eingestellt. Auf den ersten Last sieht es so aus:
Dann auf Alles ansehen Aktion I Zelle erweitern wollen, meinen Code:
- (IBAction)seeAllButtonAction:(id)sender {
BOOL vertical = !self.carouselCell.carouselView.vertical;
self.carouselCell.carouselView.type = vertical ? iCarouselTypeCylinder : iCarouselTypeLinear;
self.carouselCell.carouselView.vertical = vertical;
[UIView transitionWithView:self.carouselCell.carouselView
duration:0.2
options:0
animations:^{
self.carouselCell.carouselHeightConstraint.constant = vertical ? CGRectGetHeight(self.tableView.frame) : 230;
[self.carouselCell setNeedsUpdateConstraints];
[self.carouselCell updateConstraintsIfNeeded];
[self.tableView beginUpdates];
[self.tableView endUpdates];
completion:^(BOOL finished) {
}];
}
Wie Sie sehen können, ich versuchen, diese gut zu bedienen alte Lösung:
Can you animate a height change on a UITableViewCell when selected?
Und das Ergebnis:
Meine Zelle schrumpft zu 44.0f
Höhe.
Frage:
Warum dies geschieht? Ich erwarte, dass sich meine Zelle sanft mit der Magie von Auto-Layot erweitert.
Hinweis:
Ich möchte dont't -tableView:heightForRowAtIndexPath:
verwenden. Es ist Auto-Layout-Ära, oder?
Sie müssen noch 'tableView: heightForRowAtIndexPath:' verwenden. Das ist kein Auto-Layout-Job. – Astoria
@Astoria, sieht Auto-Layout-Job sehr ähnlich. – orkenstein
@orkenstein Ich stimme völlig zu, das sollte jetzt mit Auto-Layout gemacht werden. Ich versuche grundsätzlich dasselbe zu tun: setze Beschränkungen für die contentView der Zelle und erzähle der Tabellenansicht, um die Höhe zu animieren. Allerdings konnte ich es bisher nicht zur Arbeit bringen. Haben Sie eine Lösung für dieses Problem gefunden? – Alex