UI基础整理-7

scrollView 滚动视图

滚动属性
设置中心点位置,
是否反弹,
整页滑动,
contentSize(设置是否能够滚动),
contentOddset(默认显示的区域 = CGPointMake(kWidth,0)是显示滚动视图原点坐标为一个宽度位置的图片),
设置能否滑动到顶部,
设置是否滚动,
设置是否显示水平或垂直方向滚动条
设置碰到水平或者垂直方向是否反弹(需保证bounces是yes并且竖直方向的contentSize.hight<scrollView的高度)

缩放属性
设置缩小的最小比例
设置放大的最大比例
设置代理
获取缩放状态(只读)是不是正在缩放
控制缩放的时候是否会反弹

缩放过程中执行的方法(先返回进行缩放的视图)
返回缩放的视图
缩小需要固定中心位置
放大需要补齐左上方空隙


滚动相关属性

 //创建滚动视图
    UIScrollView *scrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, kWidth, kHeight/2)];
    //设置中心点位置
    scrollView.center = CGPointMake(kWidth/2, kHeight/2);
    //设置背景色
    scrollView.backgroundColor = [UIColor yellowColor];
    //设置contentSize,contentSize决定了视图是否能够滚动
    scrollView.contentSize = CGSizeMake(/*3*kWidth*/1000, 2000);//只要竖向滑动,横向给和屏幕一样大,只要横向滑动,竖向属性就和屏幕一样大
    //设置是否反弹

    scrollView.bounces = YES;
    //设置contentOffset(设置默认显示的区域)
    //设置contentOffset可以让图片一张一张的切换(设置为图片的宽度)

    scrollView.contentOffset = CGPointMake(kWidth, 0);//默认显示x=kWidth,y=0的地方
    //设置整页滑动(图片可以整页整页的切换)

    scrollView.pagingEnabled = YES;
    //滑动到顶部(点击上方状态框可以回到顶部)
    scrollView.scrollsToTop = YES;
    //是否能够滚动
    scrollView.scrollEnabled = YES;
    //是否显示水平方向滚动条(默认显示滚动条)
    scrollView.showsHorizontalScrollIndicator = NO;
    //是否显示竖直方向滚动条
    scrollView.showsVerticalScrollIndicator = NO;
    //控制垂直方向遇到边框是否反弹(类似刷新消息或者新闻)
    //保证bounces是yes的并且竖直方向的contentSize.height < scrollView的高度(未设置竖向滑动的时候可以拉下来,然后弹回去)

    scrollView.alwaysBounceVertical = YES;
    //控制水平方向遇到边框是否反弹(bounces设置为YES,并且width < scrollView的高度)
    scrollView.alwaysBounceHorizontal = YES;
    
    
    
    
    //缩放相关属性
    //缩小的最小比例

    scrollView.minimumZoomScale = 0.5;
    //放大的最大比例
    scrollView.maximumZoomScale = 2;
    //设置代理
    scrollView.delegate = self;
    //获取缩放状态(只读)是不是正在缩放
    NSLog(@"%d",scrollView.zooming);
    //控制缩放的时候是否会反弹
    scrollView.bouncesZoom = NO;



    
 




pageControl


    _pageControl= [[UIPageControlalloc]initWithFrame:CGRectMake(0,0,100,30)];
   
self.pageControl.center=CGPointMake(self.view.bounds.size.width/2,self.view.bounds.size.height-70);
   
self.pageControl.backgroundColor= [UIColorredColor];
   
//设置圆点个数
   
self.pageControl.numberOfPages= imagesArray.count;
   
//设置未选中的圆点颜色
   
self.pageControl.pageIndicatorTintColor= [UIColorgreenColor];
   
//设置选中的圆点颜色
   
self.pageControl.currentPageIndicatorTintColor= [UIColorblueColor];
   
//当只剩下一个圆点的时候,设置是否隐藏
   
self.pageControl.hidesForSinglePage=YES;
   
//设置默认选中的圆点
   
self.pageControl.currentPage=0;
   

   
//事件
    [self.pageControladdTarget:selfaction:@selector(changePage:)forControlEvents:UIControlEventValueChanged];

#pragma mark ------------------pageControl Action---------------
-(void)changePage:(UIPageControl *)pageControl{
    
    //根据pageControl的当前页来设定scrollView的偏移量
    CGPoint point = CGPointMake(pageControl.currentPage * kWidth, 0);
    //让scrollView根据pageControl的当前页来计算出来的偏移量进行偏移
    self.scrollView.contentOffset = point;

//    NSLog(@"%lu",pageControl.currentPage);
}

#pragma mark ------------------ScrollViewDelegate---------------

//结束减速时执行
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{

    //获取偏移量
    CGFloat x = self.scrollView.contentOffset.x;
    //根据偏移量控制pageControl的当前页
    self.pageControl.currentPage = x / kWidth;
}


scrollView 的代理属性的13个方法及用途
//触发时机:ScrollView 将要开始拖拽idea时候触发(此时手指刚刚触摸到scrollView的时候)
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{
   
    NSLog(@" 开始拖拽");
}

//触发时机:ScrollView 将要结束拖拽的时候触发
- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset {
    NSLog(@"拖拽结束");
   
}

//触发时机:ScrollView 已经结束拖拽的时候触发
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{
    NSLog(@"已经结束了");
    //在此方法中能拿到contenOfSet的偏移量
}

//触发时机:将要减速的时候触发(此方法不一定触发,匀速不一定触发)
- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView{
    NSLog(@"将要减速");
}

//触发时机:已经结束减速的时候触发(此方法不一定触发,上面的减速方法不触发,这个结束减速的方法就不会触发)
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
    NSLog(@"结束减速");
    //一般在这个方法中获取scrollView的偏移量,或者设置scrollView的偏移量
//    scrollView.contentOffset = CGPointZero;
//    [scrollView setContentOffset:CGPointZero animated:YES];
}

//触发时机:scrollView结束减速并且必须有动画效果才会触发(必须要有动画效果)
- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView{
    NSLog(@"结束减速(有动画)");
}

//触发时机,返回缩放后的视图,但是只能返回scrollView(内容)上的子视图
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{
    return [scrollView viewWithTag:101];
}

//触发时机:开始缩放的时候触发
- (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view{
    NSLog(@"开始缩放");
}
//触发时机:结束缩放的时候触发
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale{
    NSLog(@"结束缩放");
}

//触发时机:点击状态栏,调用该方法,该方法能实现的前提是scrollToTop的属性是YES
- (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView{
    return YES;
}

//触发时机:scrollView 已经回到顶部了
- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView{
}
 总结:scrollView的使用技巧
              使用scrollViewDidZoom: 实时修改自身视图的大小
             使用scrollViewDidEndDecelerating: 获取contentOfSet





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值