IOS UI初级-滑动视图ScrollerView

本文详细介绍了UIScrollView的基本用法,包括创建滑动视图、设置内容尺寸、调整滚动行为等,并提供了捏合手势实现放大缩小功能的具体实现。
1.UIScaollerView包含两个子类
UITableView UITextView
2.视图尺寸与内容尺寸
//当自身的frame改变时,也等比例的修改子视图的属性
    view.autoresizesSubviews = NO;
3.创建滑动视图
//创建滑动视图
   
UIScrollView *scorllView = [[UIScrollView alloc] initWithFrame:CGRectMake(50, 20, 300, 200)];
    scorllView.
backgroundColor = [UIColor grayColor];
    [
self.view addSubview:scorllView];
   
   
//子视图
   
UIView *view1 = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 300, 200)];
    view1.
backgroundColor = [UIColor redColor];
    [scorllView addSubview:view1];

//设置内容尺寸
   
//当内容尺寸与视图尺寸一样时,没有滑动效果
    scorllView.contentSize = CGSizeMake(300, 400);

/*****UIScrollView的常用属性*****/
   
//是否显示水平滚动条
    scorllView.
showsHorizontalScrollIndicator = NO;
   
   
//是否显示垂直滚动条
//    scorllView.showsVerticalScrollIndicator = NO;

//设置滚动条的样式 默认,白色,黑色
//    scorllView.indicatorStyle = UIScrollViewIndicatorStyleBlack;
   
   
//滚动开始、末尾位置是否加反弹效果
//    scorllView.bounces = NO;
   
   
//设置滚动的偏移量
//    scorllView.contentOffset = CGPointMake(50, 250);
   
   
//设置是否分页 子视图的尺寸必须是视图尺寸的整数倍
//    scorllView.pagingEnabled = YES;
   
   
//是否开启滚动
//    scorllView.scrollEnabled = NO;

    //填充 返回时留在偏移的位置
//    scorllView.contentInset = UIEdgeInsetsMake(20, 20, 0, 0);
   
   
//设置代理对象
    scorllView.delegate = self;  
}

#pragma mark-----UIScrollViewDelegate
//滑动视图滑动时调用,不断的调用
- (
void)scrollViewDidScroll:(UIScrollView *)scrollView
{
//    CGFloat ySet = scrollView.contentOffset.y;
//    NSLog(@"%.2f", ySet);
}
//开始拖动的时候调用的
- (
void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
   
NSLog(@"开始拖动");
}
//结束拖动的时候调用----手指离开屏幕
- (
void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
   
NSLog(@"结束拖动");
   
//是否减速
   
if (decelerate) {
       
//将要开始减速
       
NSLog(@"将要开始减速");
    }
else if (!decelerate){
       
//已经停止
       
NSLog(@"结束拖动的时候就已经停止,没有减速");
    }
}
//减速才调用的协议方法
- (
void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView
{
   
NSLog(@"开始减速");
}

- (
void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
   
NSLog(@"结束减速");
}
3.使用捏合手势
UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:self.view.bounds];
    [
self.view addSubview:scrollView];
    scrollView.
delegate = self;
   
//设置放大的尺寸
    scrollView.
maximumZoomScale = 3;
    scrollView.minimumZoomScale = 1;

#pragma mark---UIScrollViewDelegate
//设置缩放的子视图
- (
UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
//    NSLog(@"1111");
  
   
   
return [scrollView viewWithTag:100];
}


//缩放时调用的协议方法--实时调用
- (
void)scrollViewDidZoom:(UIScrollView *)scrollView
{
   
//获取到放大的倍数
   
CGFloat scale = scrollView.zoomScale;
   
NSLog(@"%.2f",scale);
}

//开始缩放
- (
void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view
{
   
NSLog(@"开始缩放");
}
//停止缩放
- (
void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale
{
   
NSLog(@"停止缩放");
}























评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值