IOS图层Layer学习笔记(六)—— CAScrollLayer

时间:2021-01-29 04:13:14

简介

CAScrollLayerCALayer的子类,用于显示层的一部分。CAScrollLayer的可滚动区域的范围是由它的子层布局来确定的。 CAScrollLayer不提供键盘或鼠标事件处理,也没有提供可见滚动条。

属性

scrollMode

NSString *, No Animatable。允许滚动方向,可选以下值:

NSString * const kCAScrollNone;         // 禁止滚动
NSString * const kCAScrollVertically; // 只允许垂直滚动
NSString * const kCAScrollHorizontally; // 只允许水平滚动
NSString * const kCAScrollBoth; // 可以随便滚动,默认

visibleRect

CGRect, readonly。返回可见区域范围。
此属性是在CALayer的分类中实现的,所以所有CALayer子类都可以调用次方法来获取当前显示的可见区域范围。但是必须要是在CAScrollLayer的子图层。

方法

- (void)scrollToPoint:(CGPoint)p

把指定点p滚动到左上角。点坐标可以是负值。

- (void)scrollToRect:(CGRect)r

滚动使指定区域r可见。
如果r.size > self.bounds.size,则r.size = self.bounds.size

- (void)scrollPoint:(CGPoint)p

此方法是在CALayer的分类中实现。改方法是从自身开始往父图层找到最近的CAScrollLayer层,然后调用-scrollToPoint: 方法,如果没有找到CAScrollLayer层则不做任何处理。

- (void)scrollRectToVisible:(CGRect)r

此方法是在CALayer的分类中实现。改方法是从自身开始往父图层找到最近的CAScrollLayer层,然后调用-scrollToRect: 方法,如果没有找到CAScrollLayer层则不做任何处理。