2011-09-23 17 views
5

Próbuję zrozumieć kwarc i uzyskać kontekst, z którego należy korzystać. Jeśli mam funkcję, w której tworzę kontekst, ale potem wywołuję inną funkcję do innego rysunku do tego samego kontekstu, czy muszę przekazać kontekst z pierwszej metody do następnej? Czy mogę po prostu użyć UIGraphicsGetCurrentContext() dla wszelkich metod CG, które wymagają kontekstu, ponieważ nadal rysuję w tym samym kontekście?Zrozumienie UIGraphicsGetCurrentContext()

Odpowiedz

13

docs for UIGraphicsGetCurrentContext() powiedzieć:

Obecny kontekst graficzny jest zerowa domyślnie. Przed wywołaniem metodydrawRect: zobacz, jak obiekty przesuwają poprawny kontekst na stos, czyniąc go bieżącym. Jeśli jednak nie używasz obiektu UIView do wykonania swojego rysunku , musisz ręcznie wcisnąć poprawny kontekst na stos przy użyciu funkcji UIGraphicsPushContext.

Po wywołaniu UIGraphicsPushContext() z utworzonym kontekstem, inne metody mogą uzyskać dostęp do tego kontekstu za pomocą UIGraphicsGetCurrentContext(). Jeśli wywołujesz UIGraphicsGetCurrentContext() poza drawRect: i nie ustawiłeś jawnie kontekstu za pomocą UIGraphicsPushContext(), bieżący kontekst graficzny jest niezdefiniowany - i na pewno nie jest bezpieczny w użyciu.

+0

Oto działający link: https://developer.apple.com/documentation/uikit/1623918-uigraphicsgetcurrentcontext – DeveloperACE