Beispiel Bildschirmaufnahme:
Was ist eine bessere Möglichkeit, die Größenänderung einer UIView zu animieren, die Unteransichten enthält?
Meine aktuelle Methode:
In der Bildschirmaufnahme hat die übergeordnete UIView (orange) eine Unteransicht UILabel (gelb + Autoresierung). animateWithDuration
animiert die Größenänderung des Rahmens der übergeordneten UIView. Das Problem bei dieser Methode ist, dass die Größenanpassung der Unteransicht nicht animiert wird. Es ändert sich abrupt, wo es animiert werden soll.
Animiert die Unteransicht explizit am besten oder gibt es eine effizientere Methode? (z.B. CGAffineTransform?)
Beispielcode:
%Vor%Ich nehme an, Ihre gelbe SubView ist UILabel?
Wenn UILabel die Rahmengröße in UIViewAnimation ändert, wird sofort skaliert
, außer Sie verwenden die CGAffineTransformScale
ein Beispiel
wenn
%Vor%Wenn sowohl view_parent als auch view_component UIView
ist %Vor%funktioniert einwandfrei
aber wenn view_parent UIView und view_component ist UILabel
Sie müssen etwas tun wie ...
%Vor%Wünsche Hilfe ~
Um die Ansicht und auch die Unteransicht zu animieren, könnten Sie diesen Code verwenden:
%Vor%Sie können Rahmen, Grenzen oder Mittelpunkt nicht verwenden, wenn Sie auch Dinge mit CGAffine animieren. Wenn Sie die Ansicht also auch verschieben müssen, verwenden Sie etwa Folgendes:
%Vor%Verwenden Sie UIViewAnimationOptionLayoutSubviews:
[UIView animateWithDuration:0.2 delay:0 options:UIViewAnimationOptionLayoutSubviews animations:^{ //resize the superview
} completion:nil];
Tags und Links objective-c iphone ios uiview ios7