码迷,mamicode.com
首页 > 其他好文 > 详细

UIScrollView简略了解

时间:2015-08-26 15:28:12      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:

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;

UIScrollView简略了解

标签:

原文地址:http://www.cnblogs.com/zhangzjblog/p/4760459.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!