您的位置:首页 > 产品设计 > UI/UE

09 UIScrollView 、 UIPageControl

2015-12-18 20:21 423 查看

09 UIScrollView 、 UIPageControl

1.UIScrollview

1)核心功能:

滚动:只有contentSize大于frame.size的时候,才能够滚动。

缩放:自带缩放,可以指定缩放倍数。

UIScrollView滚动相关属性:

contentSize //定义内容区域大小,决定是否能够滑动

contentOffset //视图左上角距离坐标原点的偏移量

scrollsToTop //滑动到顶部(点状态条的时候)

pagingEnabled //是否整屏翻动

bounces //边界是否回弹

scrollEnabled //是否能够滚动

showsHorizontalScrollIndicator //控制是否显示水平方向的滚动条

showVerticalScrollIndicator //控制是否显示垂直方向的滚动条

alwaysBounceVertical //控制垂直方向遇到边框是否反弹

alwaysBounceHorizontal //控制水平方向遇到边框是否反弹

UIScrollView缩放相关属性:

minimumZoomScale // 缩小的最小比例

maximumZoomScale //放大的最大比例

zoomScale //设置变化比例

zooming //判断是否正在进行缩放反弹

bouncesZoom //控制缩放的时候是否会反弹

要实现缩放,还需要实现delegate,指定缩放的视图是谁。

2).UIScrollView的常用代理方法

1)与滚动有关的代理方法

//将要开始拖拽(手指触碰到屏幕,并且移动)
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{

}

//已经开始滚动(只要scrollview是滚动状态就会调用此方法)
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{

}

//停止拖动(当手指(触摸对象)离开,正在滚动的视图减速)
- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView{
NSLog(@--%s, __func__);
}

//视图真正静止(视图不动了)
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
NSLog(@%s,__func__);
}


3)与缩放有关的代理方法

//指定scrollView的某一个子视图为可缩放视图(只能指定一个!),前提条件是子视图已经添加到scrollView上面
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{

}

//开始缩放的代理方法     第二个参数view:这个参数是指我们要缩放的视图(这里就是imageView)。

- (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view{
NSLog(@---%@, view);
}

//正在缩放的代理方法     只要正在缩放,就会执行此方法。所以此方法会在缩放过程中多次调用
- (void)scrollViewDidZoom:(UIScrollView *)scrollView{

}

//缩放结束所执行的代理方法
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale{

}


2.UIPageControl

UIPageControll 是继承于UIControl的一个IOS系统UI控件,可以提供给开发者设计分页效果的功能。pageControl不单独使用,通常与scrollView结合使用。

初始化方法:
UIPageControl * page = [[UIPageControl alloc]initWithFrame:CGRectMake(100, 100, 100, 100)];

属性:
设置控制器页数(默认为0)
@property(nonatomic) NSInteger numberOfPages;

设置当前所在页码
@property(nonatomic) NSInteger currentPage;

设置当总页数为1时,是否自动隐藏控制器
@property(nonatomic) BOOL hidesForSinglePage;

设置是否延迟自动更新控制器的当前页码(默认为NO)
@property(nonatomic) BOOL defersCurrentPageDisplay;
注意:这个属性如果设置为YES,点击时并不会改变控制器显示的当前页码点,必须手动调用
- (void)updateCurrentPageDisplay;
这个方法,才会更新。

更新控制器当前页码
- (void)updateCurrentPageDisplay;

通过页数得到控制器大小
- (CGSize)sizeForNumberOfPages:(NSInteger)pageCount;
这个属性用于页数会变化的情况下进行大小动态处理

设置控制器页码点得颜色
@property(nonatomic,retain) UIColor *pageIndicatorTintColor;

设置控制器当前所在页码点的颜色
@property(nonatomic,retain) UIColor *currentPageIndicatorTintColor;


代码演示
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: