scrollViewでズームが有効になっているUIScrollView内にUIImageViewがあります。私が欲しいのは、ユーザーが画像の特定の領域にズームインしてから戻ってきた場合、スクロールビューは画像が残っていた場所に設定されることです。コンテンツ オフセットを使用してみましたが、すべてのズーム レベルで機能するとは限りません。ズーム レベル 1 の場合、imageView の種類は scrollView の左側に固定されます。これは、 contentOffset と zoomScale を保存するために使用したコードです。
-(void)saveContentOffset
{
NSInteger zoomValue=[Scroll zoomScale];
CGPoint offeset=[Scroll contentOffset];
NSMutableDictionary *dict=[[NSMutableDictionary alloc] init];
[dict setObject:[NSNumber numberWithInteger:offeset.x] forKey:@"X"];
[dict setObject:[NSNumber numberWithInteger:offeset.y] forKey:@"Y"];
[dict setObject:[NSNumber numberWithInteger:zoomValue] forKey:@"Zoom"];
[[NSUserDefaults standardUserDefaults] setObject:dict forKey:@"Dict"];
}
このコードは、ユーザーが画面に戻ったときに contentOffset を設定するために使用されます。
-(void)setContentOffsetForScroll
{
NSDictionary *dict=[[NSUserDefaults standardUserDefaults] objectForKey:@"Dict"];
if ([dict allKeys]>0)
{
NSInteger xPoint=[[dict valueForKey:@"X"] integerValue];
NSInteger yPoint=[[dict valueForKey:@"Y"] integerValue];
NSInteger zoomScale=[[dict valueForKey:@"Zoom"] integerValue];
CGPoint offsetPoint=CGPointMake(xPoint, yPoint);
[Scroll setZoomScale:zoomScale];
[Scroll setContentOffset:offsetPoint];
}
}
zoomLevel 1 の場合の問題については、添付の画像を確認してください。greenColor の背景でのビューは ScrollView です。この場合、コンテンツは left に設定されます。
私が欠けているものを正確に提案してください。
ありがとう!