UIScrollView

UIScrollView实现屏幕的滑动,首先了解其原理。

contentsize是内容的宽和高,contentsize.width是内容的宽度,contentsize.heght是高度,contentsizeUIScrollView的一个属性,它是一个CGSize,是由核心图形所定义的架构,那定义了你可以滚轴内容的宽度和高度,你也可以添加可以上下滚动的额外区域。第一种方法是你可以通过添加内容的大小来完成。另外一个比较动态的选择是UIScrollView的另一个属性contentInsetcontentInset增加你在contentsize中指定的内容能够滚动的上下左右区域数量contentInset.top以及contentInset.buttom分别表示上面和下面的距离。

在滚轴视图中,有一个叫做ContentOffset的属性跟踪UIScrollView的具体位置,你能够自己获取和设置它,ContentOffset是你当前可视内容在滚轴视图边界的左上角那个点。如图:

可以看出,ContentOffset内容中的那个点不是从contentInset的左上角开始的,而是内容的左上角,此时的ContentOffset是正值,但有时也是负值。

了解了原理后,就动手看UIScrollView是如何使用的。

1、创建UIScrollView

UIScrollView * scrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, 320, 460)];

2、设置UIScrollView的内容

UIImageView *imageView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"scrollView"]];

  [scrollView addSubview:imageView];

3、设置UIScrollView的属性

scrollView.contentSize = CGSizeMake(320*3, 460*3);

    // 是否反弹

    

    scrollView.bounces = YES;

    

    // 是否分页

    

    scrollView.pagingEnabled = YES;

    

    // 是否滚动

    

    scrollView.scrollEnabled = YES;

    

    scrollView.showsHorizontalScrollIndicator = YES;

    

    // 设置indicator风格

    

    scrollView.indicatorStyle = UIScrollViewIndicatorStyleWhite;

    

    // 设置内容的边缘和Indicators边缘

    

    scrollView.contentInset = UIEdgeInsetsMake(0, 50, 50, 0);

    

    scrollView.scrollIndicatorInsets = UIEdgeInsetsMake(0, 50, 0, 0);

    [scrollView flashScrollIndicators];

    

    // 是否同时运动,lock

    

    scrollView.directionalLockEnabled = YES;

4、实现UIScrollView的代理方法

scrollView.delegate = self;

// 是否支持滑动至顶部


- (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView


{


    return YES;

  

}


// 滑动到顶部时调用该方法


- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView


{


    NSLog(@"scrollViewDidScrollToTop");

  

}


// scrollView 已经滑动


- (void)scrollViewDidScroll:(UIScrollView *)scrollView


{


    NSLog(@"scrollViewDidScroll");


}


// scrollView 开始拖动


- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView


{

  

    NSLog(@"scrollViewWillBeginDragging");


}


// scrollView 结束拖动


- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate


{


    NSLog(@"scrollViewDidEndDragging");


}

示例代码:https://github.com/tingxuan/UIScrollViewDemo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值