Aka*_*ash 56 iphone uiscrollview
该contentOffset物业的用途是什么UIScrollView?
Meh*_*hdi 83
它可以被认为是scrollView框架相对于其框架原点的原点坐标contentView.见下图:
Jus*_*tin 53
根据文件,该contentOffset财产代表:
内容视图的原点从滚动视图的原点偏移的点.
简而言之,它是视图在每个方向(垂直和水平)移动了多远.您可以通过访问解压的垂直和水平距离x和y的性质CGPoint:
CGFloat xOffset = _myScrollView.contentOffset.x;
CGFloat yOffset = _myScrollView.contentOffset.y;
Run Code Online (Sandbox Code Playgroud)

在这里你会看到两个矩形:
滚动正在改变整个区域内可见区域的原点。
在 iOS 中,所有视图都有一个由view.bounds矩形表示的可见区域。该类UIScrollView是一个具有独特属性的视图:它有第二个矩形,称为“内容视图”,其大小大于其边界。因此,在滚动视图中:
scrollView.boundsscrollView.contentSizecontentOffset是 的另一个名称scrollView.bounds.origin,实现如下:
var contentOffset: CGPoint {
get { return bounds.origin }
set {
var bounds = self.bounds
bounds.origin = newValue
self.bounds = bounds
}
}
Run Code Online (Sandbox Code Playgroud)
当我们以编程方式更改 contentOffset 时,我们也在更改 bounds.origin,这会导致呈现内容视图的不同区域。如果我们用 动画化这个变化setContentOffset(pt, animated: true),scrollView 看起来像被用户的手指拖动一样滚动。
官方文档这样定义 contentOffset (斜体是我的):
contentOffset:内容视图的原点(总区域)与滚动视图的原点(可见区域)偏移的点。
我想强调@westsider 对已接受答案的评论:
例如,如果你想展示 n 个可以滚动的页面,你可以创建一个带有 contentSize (n*pageWidth, pageHeight) 和边界大小 (pageWidth, pageHeight) 的 UIScrollView。然后将 contentOffset.x = (n-1) * pageWidth 设置为 n = 1 以显示第一页。
| 归档时间: |
|
| 查看次数: |
35685 次 |
| 最近记录: |