Podklasy UIView i nadpisuję metodę drawRect. Zauważam, że drawre widok jest wywoływany tylko wtedy, gdy widok ładuje się najpierw. Po tym czasie nigdy nie jest wywoływany ponownie. Jak upewnić się, że zostanie wywołany po zmianie orientacji? Próbowałem wywoływać setNeedsDisplay na widoku przed i po obrocie, a to nie robi.iPhone SDK: Jak wywołać drawRect na podklasie UIView po zmianie orientacji?
18
A
Odpowiedz
57
[myView setContentMode:UIViewContentModeRedraw];
Można ustawić to w IB, jak również (czyli tryb ustawiony na "przerysować")
8
To był błąd związany z czymś zupełnie innym. setNeedsDisplay rzeczywiście powoduje wywołanie drawRect.
+0
Tak 'setNeedsDisplay:' uruchomi przerysowanie, ale wymaga od programisty jawnego wywołania go. "setContentMode:" automagicznie wyzwala odświeżanie po zmianie orientacji. – wcochran
0
na to odpowiedzieć, a pozostałe 94.000 podobne pytania o widoku obrotów/drawRect funkiness,
-(id)initWithFrame:(CGRect)frame
{
if(self=[super initWithFrame:frame]) {
self.autoresizesSubviews=YES;
self.autoresizingMask=UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;
}
return self;
}
Powiązane problemy
- 1. Zmiana UIView przy zmianie orientacji
- 2. Jak wymusić przerysowanie (drawRect) SubView po zmianie wymiarów?
- 3. Jak ponownie załadować stronę po zmianie orientacji?
- 4. "Nieprawidłowy" rozmiar ramki/okna po zmianie orientacji w telefonie iPhone
- 5. Benchmark UIView drawRect: method
- 6. Powielanie prośby o zgodę po zmianie orientacji
- 7. Zapobieganie zmianie orientacji tapety na żywo po otwarciu aplikacji i zmianie orientacji?
- 8. Fragmenty wewnątrz ViewPager znikają po zmianie orientacji
- 9. Aktywność Androida uruchomiona ponownie po zmianie orientacji
- 10. FragmentPagerAdapter nie przywraca fragmentów po zmianie orientacji
- 11. showSoftInput nie działa po zmianie orientacji
- 12. Podklasa UIView: drawRect nie nazywane
- 13. FragmentPagerAdapter nie odtwarza fragmentów po zmianie orientacji?
- 14. Fragmenty nie działają poprawnie po zmianie orientacji
- 15. Odrzuć okno po zmianie orientacji ekranu
- 16. zapobiega ponownemu uruchamianiu aktywności po zmianie orientacji
- 17. iPhone: dlaczego drawRect nie jest wywoływany?
- 18. iOS 6 - Jak uruchomić kod niestandardowy po zmianie orientacji
- 19. Jak zachować instancję fragmentu fragmentu odtwarzającego wideo po zmianie orientacji?
- 20. Jak zapobiegać obracaniu się alertów na zmianie orientacji IOS 8
- 21. Destroy element z adaptera ViewPager po zmianie orientacji ekranu
- 22. touchesBegan nie jest wywoływana w podklasie UIView
- 23. Czarny pasek pojawiający się w UIWebview po zmianie orientacji urządzenia
- 24. Po zmianie orientacji nie został załadowany inny fragment (Android)
- 25. Fragment saveInstanceState ma wartość NULL po zmianie orientacji
- 26. ViewPager + FragmentStatePagerAdapter: ViewPager przestaje działać po zmianie orientacji ekranu
- 27. Prawidłowy sposób programowej aktualizacji wiązań po zmianie orientacji urządzenia?
- 28. Android: notifyDataSetChanged() nie aktualizuje listview po zmianie orientacji
- 29. Zawartość TextView jest tracona po zmianie orientacji ekranu
- 30. W języku javascript, jak wywołać zdarzenie po zmianie wartości zmiennej?
To jest preferowany sposób. – yuji
Zobacz oryginalną odpowiedź autora poniżej. setNeedsDisplay jest rzeczywiście właściwym wywołaniem metody. –
'setNeedsDisplay:' jest używany, gdy chcesz programowo wywołać przerysowanie. Gdy chcesz, aby zmiany orientacji wywoływały przerysowanie, "setContentMode:" jest biletem. – wcochran