您的位置:首页 > 产品设计 > UI/UE

UIScrollView

2013-12-01 21:47 218 查看
UIScrollView实现屏幕的滑动,首先了解其原理。

contentsize是内容的宽和高,contentsize.width是内容的宽度,contentsize.heght是高度,contentsize是UIScrollView的一个属性,它是一个CGSize,是由核心图形所定义的架构,那定义了你可以滚轴内容的宽度和高度,你也可以添加可以上下滚动的额外区域。第一种方法是你可以通过添加内容的大小来完成。另外一个比较动态的选择是UIScrollView的另一个属性contentInset,contentInset增加你在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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息