Mam podklasę UIView, która rysuje okrąg, którego promień się zmienia (z ładnymi animacjami skaczącymi). Widok decyduje o wielkości koła.Animate intrinsicContentSize changes
Chcę, aby ta podklasa UIView zmieniła rozmiar ramki, aby dopasować animowane zmiany do promienia okręgu, i chcę, aby te zmiany zmodyfikowały wszelkie NSLayoutConstraints połączone z widokiem (tak, aby widoki były ograniczone do krawędzi koła będzie się poruszać w miarę zmiany rozmiaru koła).
Rozumiem, że wykonanie -(CGSize)intrinsicContentSize
i wywołanie invalidateIntrinsicContentSize
, gdy zmiany promienia poinformuje wiązań do aktualizacji, ale nie mogę dowiedzieć się, jak animować zmiany do intrinsicContentSize
.
Wywołanie invalidateIntrinsicContentSize
od wewnątrz [UIView animateWith ... blok tylko natychmiast aktualizuje układ.
Czy to możliwe, i czy istnieje obejście/lepsze podejście?
Mam przeczucie, że nie jest to możliwe. Weź przykład z 'UILabel' jego' intrinsicContentSize' jest funkcją rozmiaru czcionki. Jednak nie ma dobrego sposobu na animowanie zmiany czcionki. Obejściem problemu dla etykiety jest animacja zmiany transformacji jej warstwy (przy użyciu "CAAnimation"), a następnie zmiana czcionki po zakończeniu animacji - Niezła. – Robert