【发布时间】:2010-02-04 22:38:40
【问题描述】:
我正在开发一个 iPhone 应用程序,它将多个自定义 UIViews 作为子视图放置在 UIScrollView 中。子视图作为透明视图放置在彼此的顶部,因为每个视图都有自己的绘图例程来跟踪基础视图的某些部分。基本视图是 UIImageView,它通常是我希望用户能够平移和放大和缩小的大图像。
我遇到的问题是,当我放大和缩小 UIScrollView 时,子视图不会在用户缩放时重绘自己。缩放完成后,我可以正确重新定位和缩放子视图,但用户体验不太理想。我无法找到隐藏或重绘子视图的方法,因为正在缩放以将子视图与 ImageView 一起缩放。
有什么想法吗?
谢谢!
这是我实现的代码:
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale {
for (UIView *view in subViews)
{
[view updateView:scale];
}
}
- (UIView *)viewForZoomingInScrollView:(UIScrollView *) scrollView {
return imageView;
}
【问题讨论】:
-
创建一个包含图像的 UIView 以及所有其他子视图,并在 viewForZoomingInScrollView 方法中返回该父视图。缩放时所有子视图都将被缩放,尚未测试过这对文本和复杂视图的效果如何,只是尝试使用矩形。
标签: iphone uiview uiscrollview zooming subview