Mam niestandardowy UIView, aby pokazać kafelkowy obraz.UIView skalowanie podczas animacji
- (void)drawRect:(CGRect)rect
{
...
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextClipToRect(context,
CGRectMake(0.0, 0.0, rect.size.width, rect.size.height));
CGContextDrawTiledImage(context, imageRect, imageRef);
...
}
Teraz próbuję animować rozmiar tego widoku.
To, czego się spodziewałem, to fakt, że powierzchnia kafelków rośnie, pozostawiając stałe rozmiary płytek. Zamiast tego podczas powiększania obszaru oryginalna zawartość widoku jest skalowana do nowego rozmiaru. Przynajmniej podczas animacji. Tak więc na początku i na końcu animacji wszystko jest w porządku. Podczas animacji płytki są zniekształcone.
Dlaczego CA próbuje skalować? Jak mogę temu zapobiec? Co mnie ominęło?
Wygląda na to, że jest związany z trybem widoku. Ale ustawienie go na UIViewContentModeLeft też tak naprawdę nie rozwiązuje. Nie jest to już skalowanie, ale natychmiast pojawia się w nowym rozmiarze ramki. Ustawienie go na UIViewContentModeRedraw nie wydaje się w ogóle wywoływać drawRect podczas animacji. – tcurdt