导致 UIScrollView zoomToRect: 只显示一部分
Posted
技术标签:
【中文标题】导致 UIScrollView zoomToRect: 只显示一部分【英文标题】:Cause UIScrollView zoomToRect: to only display a portion 【发布时间】:2011-11-17 10:22:06 【问题描述】:我有一个包含 UIImageView 的 UIScrollView 子类。当用户双击该区域时,我想缩放到该 CGRect(从 CGPoint 计算)并“隐藏”UIImageView 的其余部分。 Mavel.app 和 The Walking Dead.app 在看漫画时的最终效果是相似的。
到目前为止,我得到了:
-(void)presentRect:(CGRect)rect
self.bounds = originalFrame; //1
[UIView beginAnimations:@"navigateToPos" context:nil];
[self zoomToRect:rect animated:NO];
self.bounds = rect;
[UIView commitAnimations];
这可行,但“zoomToRect”需要 UIScrollView 的整个边界,当我重新启动它时(第 1 行),它会产生不希望的效果。
我被这个困住了。我不知道我是否需要一种新方法或需要使用 UIScrollView 的另一个属性。
感谢任何帮助。谢谢。
【问题讨论】:
我的印象是他们在 uiscrollview 上使用了两个黑条,并动画缩放和定位。没什么难的。 嗯我不确定,这意味着有 4 个条形图并根据可见矩形计算每个条形图的 Rects... 【参考方案1】:我下载了这个应用程序来查看它。我几乎可以肯定他们甚至没有使用 uiscrollview。页面移动的方式让我想到了这一点。而 uiscrollview 应该只在你真正需要的时候使用,因为它在你定制的时候有很多问题。 (平铺内容、缩放和其他问题)。
滑动到下一页大约只有 50px,页面转到下一页,在 uiscrollview 中它没有发生,因为它的工作方式不同。
正如我之前所说,它可能是使用 4 条制作的(正如您纠正我的那样),或者它可以通过包装 uiimage 并用作掩码的视图来完成。您只需要计算缩放方块的大小并将其移动到中心,然后调整包装视图的大小以适应这个新大小。页面的 uiscrollview 的替代品可以是一个简单的图片库,但是您将这个“漫画视图”放在哪里。
【讨论】:
iPhone 或 iPad 的行为略有不同。在 iPad 中,如果您向右移动 50 像素,您可以看到下一张图片,例如使用 UIScoolView 的图库。【参考方案2】:我已经解决了使用 UIScrollView 中的其他属性来模拟所需的效果。
【讨论】:
以上是关于导致 UIScrollView zoomToRect: 只显示一部分的主要内容,如果未能解决你的问题,请参考以下文章
带有 UIScrollView 的 UITableViewCell 导致其他单元格的内容消失
导致 UIScrollView zoomToRect: 只显示一部分
iOS:setContentSize 导致我的整个 UIScrollView 框架跳跃