我在 UIScrollView 中有一个 UIImageView,在 scrollView 中启用了缩放。我想要的是,如果用户放大了图像的特定区域,然后返回,滚动视图将图像设置在它离开的任何地方。我尝试过使用内容偏移,但它不适用于所有缩放级别。在缩放级别 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 。
请建议我到底缺少什么。
谢谢!