Ja eksperymentuje z iOS SDK i mam następujący UIView
strukturę:Moving maskę CALayer w sprawie przewijania w Scrollview
UIView
UIImageView
- tylko obraz tłaUIImageView
(zCALayer
maska)UIScrollView
Label
bardzo prosta konstrukcja, UIScrollView
jest przezroczysta warstwa i druga UIImageView
ma maskę na nim. Próbuję to zrobić, aby maska zmieniła położenie zgodnie z położeniem Treści w widoku przewijania. Jeśli użytkownik przewija, pozycja maski powinna zostać zaktualizowana. I już rozwiązał ten problem za pomocą UIScrollView
„s Delegat:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
CGPoint contentOffset = scrollView.contentOffset;
contentOffset.y = -contentOffset.y;
self.overlayImageView.viewlayer.mask.position = contentOffset;
}
Maska jest tworzony w viewDidLoad
i nie zmienia się w trakcie cyklu widzenia sterownika.
Problem polega na tym, że aktualizacja pozycji maski jest zbyt wolna. W ten sposób wygląda na to, że maska podąża za zawartością przewijania, nie przewijając jej. Metoda delegata scrollViewDidScroll
jest wywoływana poprawnie.
Aby lepiej zrozumieć problem, dołączam wideo wykonane w symulatorze iOS. http://www.youtube.com/watch?v=w3xRl3LTngY
Więc pytanie brzmi:
Czy istnieje sposób, aby maski aktualizacji szybciej lub jest to limit iOS?
Wielki, rozwiązuje ten problem. Dziękuję Ci bardzo. Zmiany pozycji maski są teraz bardziej płynne. – Legoless