我在ios5中使用UIScrollView和嵌入式UIImageView编写了一个简单的自定义View Controller,目的是显示照片并能够进行缩放和平移。 这些都嵌入在UINavigationController和TabBarViewController
中以下是我的代码片段:
- (void)viewDidLoad
{
[super viewDidLoad];
self.scrollView.delegate = self;
self.imageView.image = self.image;
[self.imageView sizeToFit];
self.scrollView.zoomScale = 1;
self.scrollView.contentSize = self.imageView.image.size;
NSLog(@"Original contentSize=(%f,%f), ratio=%f", self.scrollView.contentSize.width, self.scrollView.contentSize.height, self.scrollView.contentSize.height/self.scrollView.contentSize.width);
}
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
return self.imageView;
}
- (void) scrollViewDidZoom:(UIScrollView *)scrollView
{
NSLog(@"Changed contentSize=(%f,%f), ratio=%f", self.scrollView.contentSize.width, self.scrollView.contentSize.height, self.scrollView.contentSize.height/self.scrollView.contentSize.width);
}
我还将属性检查器中的View->模式默认为UIScrollView和UIImageView的“左上角”。变焦最小值/最大值已设置为0.1 / 10。代表和网点都联系在一起。
现在,当我运行程序时,这是我在图像上捏缩放时得到的结果:
2012-01-08 19:58:33.529 TestApp [499:f803]原始contentSize =(1024.000000,1024.000000),比率= 1.000000
2012-01-08 19:58:37.599 TestApp [499:f803]更改了contentSize =(1014.381775,922.255310),比率= 0.909180
2012-01-08 19:58:37.600 TestApp [499:f803]更改了contentSize =(1014.381775,922.255310),比率= 0.909180
2012-01-08 19:58:37.730 TestApp [499:f803]更改了contentSize =(1004.763977,913.510986),比率= 0.909180
2012-01-08 19:58:41.432 TestApp [499:f803]更改了contentSize =(974.770325,886.241394),比率= 0.909180
2012-01-08 19:58:41.433 TestApp [499:f803]更改了contentSize =(974.770325,886.241394),比率= 0.909180
2012-01-08 19:58:41.448 TestApp [499:f803]更改了contentSize =(954.777161,868.064026),比率= 0.909180
正如您所看到的,当我缩放时,contentSize的高度和宽度的比例会发生变化。有谁知道为什么会这样?我在这里做错了吗?我是否必须在scrollViewDidZoom中手动设置contentSize?
答案 0 :(得分:1)
正如我在评论中提到的,我通过将scrollView的frame.size设置为(320,367)来修复此问题。故事板设置错误。