私は iOS SDK を試しており、次のUIView
構造を持っています。
UIView
UIImageView
- 背景画像のみUIImageView
(CALayer
マスクあり)UIScrollView
Label
非常に単純な構造で、UIScrollView
透明なレイヤーと 2 番目UIImageView
にマスクがあります。私がやろうとしているのは、CALayer
マスクがスクロール ビュー内のコンテンツの位置に応じてその位置を移動することです。ユーザーがスクロールすると、マスクの位置が更新されます。UIScrollView
のデリゲートを使用して、この問題をすでに解決しました。
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
CGPoint contentOffset = scrollView.contentOffset;
contentOffset.y = -contentOffset.y;
self.overlayImageView.viewlayer.mask.position = contentOffset;
}
マスクは で作成されviewDidLoad
、View Controller のライフサイクル中に変更されません。
問題は、マスク位置の更新が遅すぎることです。こうすることで、マスクはスクロール ビューのコンテンツに従っているように見えますが、一緒にスクロールしていません。scrollViewDidScroll
デリゲート メソッドが正しく呼び出されます。
問題をよりよく理解していただくために、iOS シミュレーターで作成したビデオを添付します。 http://www.youtube.com/watch?v=w3xRl3LTngY
質問は次のとおりです。
マスクの更新を速くする方法はありますか、それとも iOS の限界ですか?