UIScrollView

原创 2013年12月01日 21:47:57

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

UIScrollView 能够缩放的设置

实现UIScrollView的缩放,必须使maximumZoomScale(默认1.0)和minimumZoomScale(默认1.0)不同 ,并且需要在delegate中的viewForZoomin...
  • petyou123
  • petyou123
  • 2016年03月04日 15:37
  • 1126

UIScrollView在Autolayout自动布局中如何自适应滚动长度?

在iOS开发中,当使用UIScrollView展示内容时,内容超出屏幕长度的情况下,我们会通过UIScrollView的contentSize来设置它的滚动长度。 如果scrollView上的内容较多...
  • Dacian_zhou
  • Dacian_zhou
  • 2017年05月12日 16:17
  • 788

iOS学习之TableView和UIScrollView的综合小应用

这个是结合了tableview控件和scrollview控件完成的商品展示界面
  • it_wjw
  • it_wjw
  • 2016年07月01日 09:28
  • 450

UIScrollView的重用笔记

UIScrollView的重用笔记import “ViewController.h” /* UIScrollView 的重用原理借鉴TableView的重用池,创建一个专门盛放子View数组,下...
  • qq_28125515
  • qq_28125515
  • 2015年12月10日 19:32
  • 419

UIScrollView基本用法详解

UIScrollView基本用法详解
  • lvdezhou
  • lvdezhou
  • 2015年12月01日 16:11
  • 3904

[操作系统]处理UIScrollView中的编辑框被弹出键盘遮挡的问题

当UIScrollView中的某一行存在编辑框时,点击编辑框,弹出的键盘有可能遮挡住编辑框,造成体验效果很不好。解决的方法很简单,就是将UIScrollView的内容和UIScrollView容器的内...
  • wangzhen3416
  • wangzhen3416
  • 2016年08月11日 11:36
  • 391

UIScrollView的实现原理

关于scrollView的思考 在iOS开发中我们会大量用到scrollView这个控件,我们使用的tableView/collectionview/textView都继承自它。sc...
  • KaSuperMen
  • KaSuperMen
  • 2016年08月25日 09:50
  • 572

IOS UIScrollView——用法详解

UIScrollView是用来在屏幕上显示那些在有限区域内放不下的内容。例如,在手机屏幕上显示内容丰富的网页或者很大的图片。在这种情况下,需要用户对屏幕内容进行拖动或缩放来查看屏幕或窗口区域外的内容。...
  • diqiuren223
  • diqiuren223
  • 2016年03月31日 23:05
  • 4617

Masonry适配——(4)UIScrollView的设置

UISCrollView在使用时,如果作为父视图包含多个子视图时,我们需要设置它的contentSize的大小,否则无法进行滚动显示。使用frame进行设置时,只需要令xxxScrollView.co...
  • super_man_ww
  • super_man_ww
  • 2016年10月20日 10:41
  • 576

UIScrollView中的手势

UIScrollView中的手势 UIScrollView自带了两个手势,分别为: UIPanGestureRecognizer UIPinchGestureRecognizer...
  • u013538732
  • u013538732
  • 2014年06月04日 15:03
  • 1147
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:UIScrollView
举报原因:
原因补充:

(最多只允许输入30个字)