UIScrollView简略了解
UIScrollView,这个类的功能就是显示一些比当前控件的框更大的内容,可以拖拽,两个手指捏来缩小放大。
UIScrollView的子类也比较好用,比如UITableView和UITextView。
接下来看一下UIScrollView的接口:
关于内容的显示的管理的方法与属性
- setContentOffset:animated:设置内容和view的原点之间的偏移量。- (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animatedcontentOffset,一个点,(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;