博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UIScrollView简略了解
阅读量:5276 次
发布时间:2019-06-14

本文共 4359 字,大约阅读时间需要 14 分钟。

UIScrollView简略了解

UIScrollView,这个类的功能就是显示一些比当前控件的框更大的内容,可以拖拽,两个手指捏来缩小放大。

UIScrollView的子类也比较好用,比如UITableView和UITextView。

接下来看一下UIScrollView的接口:

关于内容的显示的管理的方法与属性

- setContentOffset:animated:
设置内容和view的原点之间的偏移量。
- (void)setContentOffset:(CGPoint)contentOffset
animated:(BOOL)animated

contentOffset,一个点,(x,y),也就是距离坐标原点的偏移量

animated,动画,设置成yes就是在偏移移动的时候会有一个定量的速率,设置成NO就直接移动。

@property(nonatomic) CGPoint contentOffset

设置偏移量,默认是CGPointZero,也就是原点

@property(nonatomic) CGSize contentSize

内容的大小,默认是CGSizeZero

@property(nonatomic) UIEdgeInsets contentInset

内容和边缘的间隔

关于管理拖动的属性和方法

@property(nonatomic, getter=isScrollEnabled) BOOL scrollEnabled

允不允许拖动内容,

@property(nonatomic, getter=isDirectionalLockEnabled) BOOL directionalLockEnabled

会锁定某一个方向的拖动。默认是NO,也就是可以随意在横向和竖向拖动。如果设置成YES的话,一旦开始在横向或者竖向拖动,那么另一
个方向的拖动就会被锁死。如果开始的拖动是斜向的,那么就相当于NO,可以随便拖。(也是醉了)。

@property(nonatomic) BOOL scrollsToTop

点击状态栏,可以回到最上面的这么一个功能,默认是YES的。
Tip:如果在iPhone的一个界面上有多个ScrollView都设置了这个属性为YES,那么点击状态栏会是没有效果的。

- (void)scrollRectToVisible:(CGRect)rect

animated:(BOOL)animated
这个方法可以让rect中定义的这些内容刚好在屏幕上展示。

@property(nonatomic, getter=isPagingEnabled) BOOL pagingEnabled

这个属性设置成YES的话,会在多个scrollview之间的界限停止,也就是产生一页一页的效果。

@property(nonatomic) BOOL bounces

在内容碰到边缘的时候会有弹跳的效果,默认是YES。

@property(nonatomic) BOOL alwaysBounceVertical

横向的弹跳效果设置,前提是上面的bounces属性设置成yes。

@property(nonatomic) BOOL alwaysBounceHorizontal

竖向的弹跳效果设置,条件同上

- (BOOL)touchesShouldBegin:(NSSet *)touches

withEvent:(UIEvent *)event
inContentView:(UIView *)view
这是一个应该由子类来覆盖的方法,
touches是一个UITouch实例的集合
event是touch对应的事件
view是子视图
返回值是NO的话表示你不想发送时间消息给view,如果你想要view接受消息,就返回YES。
这个的默认行为是把消息给触摸事件的响应链。

- (BOOL)touchesShouldCancelInContentView:(UIView *)view

view是内容之中被触摸的view对象
返回YES就是取消发送进一步的触摸消息给View

@property(nonatomic) BOOL canCancelContentTouches

设置成YES,如果内容中的view侦测到手指点击了这个内容,但是同时用户的手指开始滑动,view就会收到touchesCancelled:withEvent
:消息,并且将这个触摸解释为拖动,由scrollView进行处理。如果设置成no,那么就不管拖动,开始侦测内容视图的点击。

@property(nonatomic) BOOL delaysContentTouches

判断是否真的要进行拖动,在决定之前进行一个延时。

@property(nonatomic) CGFloat decelerationRate

用一个浮点数来设定减速的速率

@property(nonatomic, readonly, getter=isDragging) BOOL dragging

只读属性,判断用户是不是已经开始拖动内容了

@property(nonatomic, readonly, getter=isTracking) BOOL tracking

只读,用户出没了内容但是还没有开始拖动

@property(nonatomic, readonly, getter=isDecelerating) BOOL decelerating

只读,用户的手指离开了屏幕,但是画面的拖动还在继续,显示是否在继续。

关于管理这个UIScrollView的界面风格的属性和方法

@property(nonatomic) UIScrollViewIndicatorStyle indicatorStyle

默认的UIScrollView界面风格是UIScrollViewIndicatorStyleDefault
这些东西是常量,用枚举定义
typedef enum : NSInteger {
UIScrollViewIndicatorStyleDefault,
UIScrollViewIndicatorStyleBlack,
UIScrollViewIndicatorStyleWhite
} UIScrollViewIndicatorStyle;

@property(nonatomic) UIEdgeInsets scrollIndicatorInsets

显示的部分与scrollView部分的边缘间隔

@property(nonatomic) BOOL showsHorizontalScrollIndicator

控制的是水平上的scroll进度显示是不是可见的。
默认是YES。当侦测到触摸的时候可见,在触摸之后消失

@property(nonatomic) BOOL showsVerticalScrollIndicator

同上,这个是控制竖向方向的。

- (void)flashScrollIndicators

马上显示scrollView的显示部分,在需要把scroll view放到最上面的时候,调用这个方法。

@property(nonatomic, readonly) UIPanGestureRecognizer *panGestureRecognizer

拖动手势识别器,更加精确的控制,具体是哪一个手势是用户实行的。

@property(nonatomic, readonly) UIPinchGestureRecognizer *pinchGestureRecognizer

捏放手势识别器,两根手指的手势

- (void)zoomToRect:(CGRect)rect

animated:(BOOL)animated
定位到一个特定的rect

@property(nonatomic) CGFloat zoomScale

表示缩放幅度的浮点数

- (void)setZoomScale:(CGFloat)scale

animated:(BOOL)animated
设置缩放范围幅度
设置的值要在minimumZoomScale和maximumZoomScale.之间

@property(nonatomic) CGFloat maximumZoomScale

@property(nonatomic) CGFloat minimumZoomScale
缩放范围的最大值和最小值

@property(nonatomic, readonly, getter=isZoomBouncing) BOOL zoomBouncing

表示已经超越了缩放范围的边界,会自动缩放回到定义的范围之内,在自动缩放的过程中会是YES,其他时间是NO。

@property(nonatomic, readonly, getter=isZooming) BOOL zooming

表示当前是否正在缩放的标志

@property(nonatomic) BOOL bouncesZoom
表示是不是要回到正常的范围

管理委托的属性

@property(nonatomic, assign) id< UIScrollViewDelegate > delegate

这个事scrollview的委托对象
只要是遵循了UIScrollViewDelegate的对象都可以

@property(nonatomic) UIScrollViewKeyboardDismissMode keyboardDismissMode

在手指重新开始拖动视图的时候,显示的键盘会消失,这个属性就是定义键盘消失的方式。
typedef enum : NSInteger {
UIScrollViewKeyboardDismissModeNone,
UIScrollViewKeyboardDismissModeOnDrag,
UIScrollViewKeyboardDismissModeInteractive
}UIScrollViewKeyboardDismissMode;

最后是类之中定义了的两个常量。

拖动之中的减速速率
const float UIScrollViewDecelerationRateNormal;
const float UIScrollViewDecelerationRateFast;

转载于:https://www.cnblogs.com/zhangzjblog/p/4760459.html

你可能感兴趣的文章
大四java实习生的一些经历
查看>>
线程池的概念
查看>>
Oracle_Statspack性能诊断工具
查看>>
Java 序列化
查看>>
Java 时间处理实例
查看>>
Java 多线程编程
查看>>
Java 数组实例
查看>>
mysql启动过程
查看>>
2017前端面试题总结
查看>>
Http GetPost网络请求
查看>>
SWIFT国际资金清算系统
查看>>
Sping注解:注解和含义
查看>>
站立会议第四天
查看>>
如何快速掌握一门技术
查看>>
利用AMPScript获取Uber用户数据的访问权限
查看>>
vagrant 同时设置多个同步目录
查看>>
python接口自动化28-requests-html爬虫框架
查看>>
生成随机数的模板
查看>>
Mysql 数据库操作
查看>>
转:linux终端常用快捷键
查看>>