笔记8-27(自定义UIScrollView,添加手势识别,UIPageControl使用)

来源:互联网 发布:ssh 端口转发 反向代理 编辑:程序博客网 时间:2024/06/05 11:52

1,实现分页效果。

需要自定义UIScrollView,并模仿UITableView里的协议:UITableViewDataSource,UITableViewDelegate。定义两个协议MyScrollViewDelegate,MyScrollViewDataSource,要知道一共有多少页,每一页长什么样。

再根据滚动的偏移量计算出当前页是第几页。

2,添加点击手势识别

//添加点击手势识别,否则点击图片没反应

        UITapGestureRecognizer *tap = [[UITapGestureRecognizeralloc]initWithTarget:selfaction:@selector(didTap:)];

        [selfaddGestureRecognizer:tap];

3,UIScrollView的两个重要的协议

#pragma mark - UIScrollViewDelegate//scrollView已经完成拖动手指离开,图片继续向后减速滚动,decelerate为1。该函数在这个时机调用- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{    if (!decelerate) {        if (_delegate && [_delegate respondsToSelector:@selector(scrollViewDidEndScroll:)]) {            [_delegate scrollViewDidEndScroll:self];        }    }}//scrollView已经完成减速停止时,系统自动调用- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
    //判断_delegate所指向的对象非空,并且协议里可选的方法已经实现    if (_delegate && [_delegate respondsToSelector:@selector(scrollViewDidEndScroll:)]) {        [_delegate scrollViewDidEndScroll:self];    }}
4,对于协议里面可选的方法在使用时要进行判断

if (_delegate && [_delegate respondsToSelector:@selector(scrollViewDidEndScroll:)])
5,

UIScrollView 里面重要的属性

@property(nonatomic)CGPoint contentOffset; // default CGPointZero

@property(nonatomic)CGSize contentSize;   // default CGSizeZero 内容的大小,决定了它能否滚动


//计算当前页

- (NSInteger)currentPage

{

    return_scrollView.contentOffset.x /_scrollView.frame.size.width;

}

//设置当前页:还是要将其转化为偏移量contentOffset的多少

- (void)setCurrentPage:(NSInteger)currentPage

{

   _scrollView.contentOffset =CGPointMake(_scrollView.frame.size.width * currentPage,0);

   _currentPage = currentPage;

}


6,UIPageControl的使用。用来指示滚动页面的当前页。有两个重要的属性numberOfPages(一共多少页)和currentPage(当前页)

pageControl = [[UIPageControlalloc]initWithFrame:CGRectMake(0, height - tipHeight - pageHeight, rect.size.width, pageHeight)];

//    //只在调试模式使用,得到真实数据后注释掉

//#ifdef DEBUG

//    pageControl.numberOfPages = 8;

//#endif



0 0
原创粉丝点击