Z AutoLayout
włączona, powinniśmy FORGET FRAMES
i tylko CONSIDER CONSTRAINTS
.Yes na animowanie również nie może już zmienić ramkę lub centrum, widok będzie powrócić do pierwotnej pozycji, gdy układ jest tzw.
Zamiast tego powinieneś uzyskać consider changing the constant value of the constraint
, aby uzyskać ten sam efekt.
Rozważ interfejs użytkownika podobny do obrazu podanego poniżej. Mam widok obrazu z numerem 20 points leading space from it's superview
, co oznacza, że ma on ograniczoną przestrzeń poziomą z jego widokiem. Ponadto mam trzy dodatkowe ograniczenia związane z tym widokiem obrazu, góra, szerokość i wysokość.
Pokażę ci, jak możemy animować obraz od lewej do prawej, jak pokazano na obrazku.
Utwórz IBOutlet dla ograniczeń, które musimy animować. Dopóki używamy tylko ograniczania przestrzeni poziomej, wystarczy przesunąć ten widok z lewej do prawej.
@property (weak, nonatomic) IBOutlet UIImageView *imageView;
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *horizontalSpaceConstraint;
Wewnątrz Go Away
działania, musimy zaktualizować stałą wartość tego ograniczenia.
- (IBAction)moveFrontAction:(id)sender {
self.horizontalSpaceConstraint.constant = 220;
[UIView animateWithDuration:0.5 animations:^{
[self.imageView layoutIfNeeded];
}];
}
Teraz widok powinny zostać przeniesione do prawej end.I'm właśnie robi, że wewnątrz bloku animacji więc będziemy mogli zobaczyć piękny animacji od lewej do prawej i vice versa.In produkcji, nie powinno się tak mocno kodować takich wartości.Tylko robimy to tutaj, aby wyjaśnić tę koncepcję.
Wewnątrz działania Come Back
, jesteśmy znowu resetowanie stały z powrotem do jego pierwotnej wartości, dzięki czemu można zobaczyć pomarańczowy obraz animacji z powrotem do pierwotnego położenia.
- (IBAction)moveBackAction:(id)sender {
self.horizontalSpaceConstraint.constant = 20;
[UIView animateWithDuration:0.5 animations:^{
[self.imageView layoutIfNeeded];
}];
}
brzmi to, że za pomocą autolayout jest trudniejsze niż za pomocą ramki, aby przenieść widoku, ponieważ powinienem dostać wszystkie wyloty tego widoku – user1687717
trudniej jest na początku, ale ja rzeczywiście zaczynają podoba to lepiej.Możesz zrobić o wiele więcej dzięki temu. –
Drugi @ClintWarner tutaj: Autolayout może być odrobinę trudniejszy do ustawienia początkowo, ale przynosi ogromne korzyści pod względem utrzymania i czytelności. Teraz jestem przyzwyczajony do wprowadzania ograniczeń, praca z matematyką ramową wydaje się nużąca i frustrująca. – followben