Mam widok z bardzo złożoną logiką rysowania (jest to widok mapy, który czerpie z danych GIS). Wykonanie tego rysunku w głównym wątku blokuje interfejs użytkownika i powoduje, że aplikacja przestaje reagować. Chcę przenieść rysunek do wątku tła, na przykład NSSperation.Rysowanie w wątku tła na iOS
Jaki jest najlepszy sposób na strukturę?
Obecnie rysuję do pamięci CGContext pamięci, a następnie przekonwertować go do CGImageRef, które wysyłam do widoku, aby blit na głównym wątku. Niestety zużywa to dużo pamięci i wydaje się, że akceleracja GPU nie jest już używana, ponieważ jest nieco wolniejsza. Czy jest jakiś sposób na bezpośrednie rysowanie widoku z wątku tła? Wiem, że UIKit nie jest bezpieczny w wielu wątkach, ale może jest jakiś sposób na zablokowanie widoku podczas rysowania?
Masz na myśli CALayer? –
Nie. CGLayer. http://developer.apple.com/library/mac/#documentation/GraphicsImaging/Reference/CGLayer/Reference/reference.html – MacGeek
Więc próbuję tego podejścia teraz, ale nawet jeśli uruchamiam NSTimer i uruchomić tylko 50% czasu (uruchamianie w odstępach 0,2 s dla maks. 0,1 s na cykl rysowania) wydaje się, że nadal ignoruje wszystkie zdarzenia interfejsu użytkownika. Czy istnieje jakaś sztuczka? –