UIKit - UIScrollView
2020-04-20 本文已影响0人
ienos
属性
属性名 | 作用 |
---|---|
tracking | 当 touch 后还没有拖动的时候值是 YES,否则 NO |
zoomBouncing | 当内容放大到最大或者最小的时候值是 YES,否则 NO |
zooming | 当正在缩放的时候值是 YES,否则 NO |
decelerating | 当滚动后,手指放开但是还在继续滚动中。这个时候是 YES,其它时候是 NO |
decelerationRate | 设置手指放开后的减速率 |
minimumZoomScale | 一个浮点数,表示能缩最小的倍数 |
maximumZoomScale | 一个浮点数,表示能放最大的倍数 |
pagingEnabled | 当值是 YES 会自动滚动到 subview 的边界。默认是 NO |
scrollEnabled | 决定是否可以滚动 |
delaysContentTouches | 是个布尔值,当值是 YES 的时候,用户触碰开始,scroll view 要延迟一会,看看是否用户有意图滚动。假如滚动了,那么捕捉 touch-down 事件,否则就不捕捉。假如值是 NO,当用户触碰, scroll view 会立即触发 touchesShouldBegin:withEvent:inContentView: ,默认是 YES
|
canCancelContentTouches | 当值是 YES 的时候,用户触碰后,然后在一定时间内没有移动,scrollView 发送 tracking events,然后用户移动手指足够长度触发滚动事件,这个时候,scrollView 发送了 touchesCancelled:withEvent: 到 subview,然后 scroView 开始滚动。假如值是 NO,scrollView 发送 tracking events 后,就算用户移动手指,scrollView 也不会滚动。 |
contentSize | 里面内容的大小,也就是可以滚动的大小,默认是 0,没有滚动效果。 |
showsHorizontalScrollIndicator | 滚动时是否显示水平滚动条 |
showsVerticalScrollIndicator | 滚动时是否显示垂直滚动条 |
directionalLockEnabled | 默认是 NO,可以在垂直和水平方向同时运动。当值是 YES 时,假如一开始是垂直或者是水平运动,那么接下来会锁定另外一个方向的滚动。 假如一开始是对角方向滚动,则不会禁止某个方向 |
indicatorStyle | 滚动条的样式,基本只是设置颜色。总共 3 个颜色:默认、黑、白 |
scrollIndicatorInsets | 设置滚动条的位置 |
bounces | 默认是 YES,就是滚动超过边界会反弹有反弹回来的效果。假如是 NO,那么滚动到达边界会立刻停止。 |
bouncesZoom | 和 bounces 类似,区别在于:这个效果反映在缩放上面,假如缩放超过最大缩放,那么会反弹效果;假如是 NO,则到达最大或者最小的时候立即停止。 |
在 UINavigationController 中 Scrollview 会向下偏移20个像素
if #available(iOS 11.0, *) {
self.tableView.contentInsetAdjustmentBehavior = .never
}else {
self.automaticallyAdjustsScrollViewInsets = false
}
缩放
scrollView.zoomScale
scrollView.minimumZoomScale
scrollView.maximumZoomScale
scrollView.contentSize = imageView.frame.size
// UIScrollViewDelegate
func viewForZooming(in scrollView: UIScrollView) -> UIView? {
return zoomView
}
func scrollViewDidZoom(_ scrollView: UIScrollView) {
var xCenter = scrollView.center.x
var yCenter = scrollView.center.y
xCenter = scrollView.contentSize.width > scrollView.frame.size.width ? scrollView.contentSize.width / 2 : xCenter
yCenter = scrollView
}