使用下面的代码,我看到一个红色方块,我可以滚动(因为scrollview的内容是4x屏幕)。
但是一旦我开始缩小(缩放< 1.0),滚动视图的contentSize
会立即跳到iPad屏幕尺寸的scale
倍。例如:
0.985783 757.081249 1009.441665
之后我再也无法移动广场了。当scale
高于1.0时,我只能移动广场;在这种情况下,滚动指示器显示contentSize
仍然是scale
次屏幕尺寸。
另一个效果是,当缩小到1.0以下时,红色正方形通常会通过缩小向左上角移动。但是,在我释放屏幕后(没有任何进一步的缩放),它会进一步移动到角落。编辑:这必须是scrollview的橡皮筋。
(广场本身按预期进行扩展。)
我在这里缺少什么?这是我的视图控制器代码:
- (void)viewDidLoad
{
[super viewDidLoad];
self.scrollView = [[UIScrollView alloc]initWithFrame:self.view.bounds];
self.scrollView.contentSize = CGSizeMake(self.view.bounds.size.width * 2, self.view.bounds.size.height * 2);
self.scrollView.backgroundColor = [UIColor colorWithWhite:0.5f alpha:1.0f];
self.scrollView.minimumZoomScale = 0.1f;
self.scrollView.maximumZoomScale = 4.0f;
self.scrollView.clipsToBounds = YES;
self.scrollView.delegate = self;
self.contentView = [[UIView alloc] initWithFrame:self.scrollView.bounds];
[self.scrollView addSubview:self.contentView];
[self.view addSubview:self.scrollView];
UIView* view = [[UIView alloc] initWithFrame:CGRectMake(400, 400, 100, 100)];
view.backgroundColor = [UIColor redColor];
[self.contentView addSubview:view];
}
#pragma UIScrollViewDelegate
- (UIView*)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
return self.contentView;
}
- (void)scrollViewDidEndZooming:(UIScrollView*)scrollView
withView:(UIView*)view
atScale:(double)scale
{
NSLog(@"%f %f %f", scale, self.scrollView.contentSize.width, self.scrollView.contentSize.height);
}