Eine bessere Möglichkeit, die Größenänderung von UIView und Subviews zu animieren?

8

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%     
Justin 02.04.2014, 00:59
quelle

3 Antworten

3

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 ~

    
shuyu 02.04.2014, 02:50
quelle
3

Um die Ansicht und auch die Unteransicht zu animieren, könnten Sie diesen Code verwenden:

%Vor%

Weitere Informationen

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%     
Eli Braginskiy 02.04.2014 01:10
quelle
0

Verwenden Sie UIViewAnimationOptionLayoutSubviews:

  1. Fügen Sie in der Unteransicht die richtigen führenden, abschließenden, oberen und unteren Beschränkungen hinzu.
  2. [UIView animateWithDuration:0.2 delay:0 options:UIViewAnimationOptionLayoutSubviews animations:^{ //resize the superview } completion:nil];
Kunal 03.11.2017 17:32
quelle

Tags und Links