語句解釋
UITableView、UITextView是UIScrollView的子类。 UITableViewController是UIViewController的子类。 UITableViewController是管理表格视图的。 表格视图单元是你的UITableView用来在自身显示数据的UIView子类。 UIScrollView是用来管理在它们之间卷动的类,在地图上显示,放大缩小等。 ContentOffset是你当前可视内容在滚轴视图边界的左上角的那个点,它不是从ContentInsets的左上角开始,而是内容的左上角。 ContentInset 是scrollview中contentView.frame.origin与scrollview.frame.origin的关系.
CGRecct frame=CGRectMake(0,0,200,200); //创建框架 scrollView = [[UIScrollView alloc] initWithFrame : frame ]; //把它加为我们视图的一个子视图,后把其它一些内容视图当作子视图添加给它
添加子视图subviews ScollView中添加左右移动的UIImageView frame=CGRectMake(0,0,500,500); //比可见视图大,当左右移动时隔不久不同部分会移动进来 myImageView = [[UIImageView alloc] initWithFrame : frame ]; [scrollView addSubview : myImageView];
Set the content size scrollView.contentSize= CGSizeMake(500,500);
-(void)scrollViewDidScoll : (UIScrollView *) scrollView; 它在每次滚轴视图的ContentOffset改变时都会被调用,当用户在四周移动手指时也会一直被调用
-(BOOL)scrollViewShouldScrollToTop: (UIScrollView *)scrollView; 响应事件的一个例子
scroll view 原理 http://www./bbs/read.php?tid-40965-page-1.html 首先了解下UIScrollView对于touch事件的接收处理原理:UIScrollView应该是重载了hitTest 方法,并总会返回itself 。所以所有的touch 事件都会进入到它自己里面去了。内部的touch事件检测到这个事件是不是和自己相关的,或者处理或者除递给内部的view。 在滚动过程当中,其实是在修改原点坐标。当手指触摸后, scroll view会暂时拦截触摸事件,使用一个计时器。假如在计时器到点后没有发生手指移动事件,那么 scroll view 发送 tracking events 到被点击的 subview。假如在计时器到点前发生了移动事件,那么 scroll view 取消 tracking 自己发生滚动。
子类可以重载 touchesShouldBegin:withEvent:inContentView: 决定自己是否接收 touch 事件 scroll view 还处理缩放和平移手势,要实现缩放和平移,必须实现委托 viewForZoomingInScrollView:、scrollViewDidEndZooming:withView:atScale: 几个属性介绍 tracking zoomBouncing zooming decelerating decelerationRate maximumZoomScale minimumZoomScale pagingEnabled scrollEnabled delaysContentTouches canCancelContentTouches contentSize showsHorizontalScrollIndicator showsVerticalScrollIndicator bounces bouncesZoom
directionalLockEnabled indicatorStyle scrollIndicatorInsets
|
|