UIScrollView内にカラーマップがあり、このマップのピクセルの色をサンプリングしようとしています。サンプルレチクルはスクロールビューの上に配置され、ユーザーはスクロールビューのコンテンツをレチクルの下に移動します。
ユーザーはタップジェスチャでレチクルをドロップできますが、ビューをレチクルの下に移動する追加オプションを提供したいと思います。
ズームされたビューのx、y座標が現在レチクルの下にあることを理解する方法を見つけようとしています。これまでのところ、特にズームイン/ズームアウトが関係しているため、このロジックはわかりません。
-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
CGPoint mapLocation = [tapGestureRecognizer locationInView:self.surfaceMap];
NSLog(@"mapLocation (x,y) %.0f,%.0f",mapLocation.x,mapLocation.y);
NSLog(@"contentOffset (x,y) %.0f,%.0f",self.scrollView.contentOffset.x,self.scrollView.contentOffset.y);
//calculate where the marker is pointing to in the surface map while the scrollview is scrolling
int frameWidth = self.surfaceMap.frame.size.width;
int frameHeight = self.surfaceMap.frame.size.height;
//this is what I'm trying to calculate
CGPoint trueLocation = CGPointMake(self.scrollView.contentOffset.x+frameWidth-self.surfaceMap.frame.origin.x, self.scrollView.contentOffset.y-self.surfaceMap.frame.origin.y);
NSLog(@"trueLocation (x,y) %.0f,%.0f",trueLocation.x,trueLocation.y);
[self colorOfPixelAtPoint:trueLocation];
}
どんな入力でも大歓迎です!