iOS开发 ----- UIScrollview UIPageControl

UIScrollView

    //创建滚动视图
    //scrollViw的视图范围
    UIScrollView * scrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];

    [scrollView addSubview:imageView];
    //内容的大小 默认是scrollView的大小,改变为内容的大小,即可实现滚动
    scrollView.contentSize = CGSizeMake(image.size.width, image.size.height);

    //隐藏滚动条
    scrollView.showsHorizontalScrollIndicator = NO;
    scrollView.showsVerticalScrollIndicator = NO;

    //相对于原点的偏移量
    scrollView.contentOffset = CGPointMake(image.size.width/2 - scrollView.center.x, image.size.height/2 - scrollView.center.y);

    scrollView.delegate = self;
    //自带回弹效果,设置为no,则取消这个效果
    scrollView.bounces = NO;


    //分页效果,页的宽可以自己定制
    scrollView.pagingEnabled = YES;

    //最小缩放倍数
    scrollView.minimumZoomScale = 0.5;

    //最大缩放倍数
    scrollView.maximumZoomScale = 4.0;

相关代理

#pragma mark scrollView 的代理时间


#pragma mark 整个图片呗拖拽的过程中一直调用这个方法
-(void)scrollViewDidScroll:(nonnull UIScrollView *)scrollView
{
    NSLog(@"一直被调用 x = %f y = %f",scrollView.contentOffset.x,scrollView.contentOffset.y);
}

#pragma mark 结束减速
-(void)scrollViewDidEndDecelerating:(nonnull UIScrollView *)scrollView
{
    NSLog(@"减速的过程");
}


#pragma mark 将要减速
-(void)scrollViewWillBeginDecelerating:(nonnull UIScrollView *)scrollView
{
    NSLog(@"将要减速");
}


#pragma mark 已经结束拖拽
-(void)scrollViewDidEndDragging:(nonnull UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{

}

#pragma mark 将要开始拖拽
-(void)scrollViewWillBeginDragging:(nonnull UIScrollView *)scrollView
{

}

#pragma mark 将要结束拖拽
-(void)scrollViewWillEndDragging:(nonnull UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout nonnull CGPoint *)targetContentOffset
{

}

#pragma mark 滚动到顶部 点击状态栏返回顶部
-(BOOL)scrollViewShouldScrollToTop:(nonnull UIScrollView *)scrollView
{
    //多个scrollView时会造成冲突,
    //一般一个设为yes,其他为no可以解决冲突
    //回到顶部, 可以添加刷新方法
    return YES;
}

#pragma mark 指定那个view进行缩放
-(nullable UIView *)viewForZoomingInScrollView:(nonnull UIScrollView *)scrollView
{
    return scrollView.subviews[0];
}


#pragma mark 缩放结束
-(void)scrollViewDidEndZooming:(nonnull UIScrollView *)scrollView withView:(nullable UIView *)view atScale:(CGFloat)scale
{
    NSLog(@"缩放结束");
}

#pragma mark 缩放过程中一直调用
-(void)scrollViewDidZoom:(nonnull UIScrollView *)scrollView
{
    NSLog(@"缩放中");
}
#pragma mark 将要缩放
-(void)scrollViewWillBeginZooming:(nonnull UIScrollView *)scrollView withView:(nullable UIView *)view
{
    NSLog(@"将要缩放");
}

UIPageControl

    _pageControl = [[UIPageControl alloc]initWithFrame:CGRectMake(0, self.view.frame.size.height - 40, self.view.frame.size.width, 40)];

    //背景颜色
    _pageControl.backgroundColor = [UIColor grayColor];

    //一共有多少个点点
    _pageControl.numberOfPages = 16;
    _index = 0;
    //当前页
    _pageControl.currentPage = _index;
    _pageControl.pageIndicatorTintColor = [UIColor redColor]; //非当前页的颜色
    _pageControl.currentPageIndicatorTintColor = [UIColor greenColor]; //当前的颜色

    _scrollView.delegate = self;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章