Getting the visible rect of an UIScrollView#39;s content(获取 UIScrollView 内容的可见矩形)
问题描述
如何找出屏幕上实际可见的显示视图内容的矩形 (CGRect).
How can I go about finding out the rect (CGRect) of the content of a displayed view that is actually visible on screen.
myScrollView.bounds
上面的代码在没有缩放时有效,但是一旦你允许缩放,它会在缩放比例不是 1 时中断.
The code above works when there's no zooming, but as soon as you allow zooming, it breaks at zoom scales other than 1.
为了澄清,我想要一个包含滚动视图内容的可见区域的 CGRect,相对于内容.(即,如果它是缩放比例 2,矩形的大小将是滚动视图大小的一半,如果它是缩放比例 0.5,它将是两倍.)
To clarify, I want a CGRect that contains the visible area of the scroll view's content, relative to the content. (ie. if it's a zoom scale 2, the rect's size will be half of the scroll view's size, if it's at zoom scale 0.5, it'll be double.)
推荐答案
回答我自己的问题,主要感谢 Jim Dovey 的回答,这并没有完全解决问题,但给了我回答的基础:
Answering my own question, mostly thanks to Jim Dovey's answer, which didn't quite do the trick, but gave me the base for my answer:
CGRect visibleRect;
visibleRect.origin = scrollView.contentOffset;
visibleRect.size = scrollView.bounds.size;
float theScale = 1.0 / scale;
visibleRect.origin.x *= theScale;
visibleRect.origin.y *= theScale;
visibleRect.size.width *= theScale;
visibleRect.size.height *= theScale;
主要区别在于 visibleRect 的大小应该是 scrollView.bounds.size
,而不是 scrollView.contentSize
是内容视图的大小.还稍微简化了数学,并没有完全看到 isless()
的用途,它会在代码更大时破坏代码.
The main difference is that the size of the visibleRect ought to be scrollView.bounds.size
, rather than scrollView.contentSize
which is the size of the content view. Also simplified the math a bit, and didn't quite see the use for the isless()
which would break the code whenever it's greater.
这篇关于获取 UIScrollView 内容的可见矩形的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:获取 UIScrollView 内容的可见矩形
基础教程推荐
- Kivy Buildozer 无法构建 apk,命令失败:./distribute.sh -m “kivy"d 2022-01-01
- 在 gmail 中为 ios 应用程序检索朋友的朋友 2022-01-01
- 当从同一个组件调用时,两个 IBAction 触发的顺序是什么? 2022-01-01
- Android:对话框关闭而不调用关闭 2022-01-01
- UIWebView 委托方法 shouldStartLoadWithRequest:在 WKWebView 中等效? 2022-01-01
- 如何在没有IB的情况下将2个按钮添加到右侧的UINavigationbar? 2022-01-01
- 如何让对象对 Cocos2D 中的触摸做出反应? 2022-01-01
- 如何在 iPhone 上显示来自 API 的 HTML 文本? 2022-01-01
- 如何在 UIImageView 中异步加载图像? 2022-01-01
- android 应用程序已发布,但在 google play 中找不到 2022-01-01