我有一个包含地图列表的UITableView。选择某个项目时,将在主窗口中添加一个新的子视图,并显示该地图。在我的地图视图控制器查看下面的方法获取每个显示时称为:每次UIScrollView高度变化
- (void)showMap {
UIImageView *tempImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:mapImage]];
float imageHeight = tempImageView.image.size.height;
float targetHeight = scrollView.frame.size.height - mapNavigationController.navigationBar.frame.size.height;
scrollView.contentSize = tempImageView.image.size;
scrollView.maximumZoomScale = 1.0;
scrollView.minimumZoomScale = targetHeight/imageHeight;
scrollView.clipsToBounds = YES;
self.imageView = tempImageView;
[tempImageView release];
[scrollView addSubview:imageView];
scrollView.zoomScale = scrollView.minimumZoomScale;}
一个新的UIImageView添加到的UIScrollView并在视图中消失了的UIImageView被删除。计算zoomScale以便根据纵横比来匹配图像。
现在,我第一次点击一个项目时,一切正常,地图图像填充UIScrollView的全部高度,但下次单击某个项目时,UIScrollView的高度会更小。我还应该注意到,主窗口包含一个标签栏。
所以现在我的问题:
- 的UIScrollView中如何可以改变它的大小呢?
- 是否有任何其他动态的方式来检索targetHeight?
在此先感谢!
你可能已经想通了,我只是把我的想法放在这里。正如我想可能是因为你改变scrollView的zoomScale的高度得到改变,并在所有情况下,它变得越来越小:) – 2012-11-01 07:13:02