【发布时间】:2010-07-21 21:43:36
【问题描述】:
我有一个包含地图列表的 UITableView。当一个项目被选中时,一个新的子视图被添加到主窗口并显示地图。在我的地图视图的视图控制器中,每次显示时都会调用以下方法:
- (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;}
每次都会向 UIScrollView 添加一个新的 UIImageView,当视图消失时,UIImageView 会被移除。计算 zoomScale 以使图像根据纵横比进行拟合。
现在我的问题是,第一次单击项目时一切正常,地图图像填充 UIScrollView 的整个高度,但下次单击项目时,UIScrollView 的高度更小。我还应该注意,主窗口包含一个标签栏。
现在回答我的问题:
- UIScrollView 如何改变它的大小?
- 还有其他动态方法来检索 targetHeight 吗?
提前致谢!
【问题讨论】:
标签: iphone uiscrollview uiimageview