我有一个包含地图列表的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的高度会更小。我还应该注意,主窗口包含一个标签栏。
现在问我的问题:
提前致谢!
答案 0 :(得分:1)
我遇到了类似的问题。事实证明,问题是我为UIScrollView
的主视图创建了UIViewController
的子类,而UIViewController
对滚动视图的正确大小有自己的想法。
我通过制作主视图子类UIView
而不是UIScrollView
来修复它,然后在视图中添加UIScrollView* content_view
,并将我的子视图添加到content_view
而不是self
。
不确定这是否对你有帮助,但是......
答案 1 :(得分:0)