【发布时间】:2014-07-09 06:31:06
【问题描述】:
我的 ScrollView 出现问题。我正在以编程方式将子视图 UIImageView 添加到 ScrollView,并实现缩放。我在 iPhone 上使用下面的代码将图像居中没有问题,但在 iPad 上,图像偏向右侧并向下推。我为 iPad 添加了故事板和一个空的视图控制器并将其连接起来,就像我为 iPhone 所做的那样。我没有 ScrollView 子类(这么简单,我认为不需要它)。
如何让图像/滚动视图在 iPad 上居中?
代码:我没有在代码的其他任何地方指定位置或大小
这一切都在我的 viewcontroller.m 中
//Create scrollView.
_scrollView = [[UIScrollView alloc] initWithFrame:[[self view] bounds]];
[_scrollView setBackgroundColor:[UIColor whiteColor]];
[_scrollView setDelegate:self];
[_scrollView setBouncesZoom:YES];
[[self view] addSubview:_scrollView];
//Add violinImage to scrollView
_currentImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:_currentImageName]];
[_scrollView setContentSize:[_currentImage frame].size];
[_scrollView addSubview:_currentImage];
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
return _myImage;
}
- (void)scrollViewDidZoom:(UIScrollView *)scrollView
{
UIView *subView = [scrollView.subviews objectAtIndex:0];
CGFloat offsetX;
CGFloat offsetY;
if (IS_IPAD)
{
offsetX = (scrollView.bounds.size.width - scrollView.contentSize.width) /2;
offsetY = scrollView.bounds.size.height * 0.3;
}
else
{
if (scrollView.bounds.size.width > scrollView.contentSize.width) {
offsetX = (scrollView.bounds.size.width - scrollView.contentSize.width) * 0.5;
}
else
{
offsetX = 0.0;
}
if (scrollView.bounds.size.height > scrollView.contentSize.height)
{
offsetY = (scrollView.bounds.size.height - scrollView.contentSize.height) * 0.5;
}
else
{
offsetY = 0.0;
}
}
subView.center = CGPointMake(scrollView.contentSize.width * 0.5 + offsetX, scrollView.contentSize.height * 0.5 + offsetY);
}
谢谢!
【问题讨论】:
标签: ios ipad uiscrollview zooming