UIScrollView的介绍及使用:

UIScrollView 是一个滚动视图

  我们手机的屏幕尺寸有限,当我们想要显示一个大的图片的时候我们需要用到这个控件

  可以在有限的屏幕中显示更多的内容

1, 如何使用 UIScrollView 滚动

  1> 拖入一个 UIScrollView 控件

  2> 给控件添加内容

  3> 设置 contentSize 说明可以滚动的范围

2.UIScrollView 的常见属性

  1>contentSize   设置滚动的范围

  2>scrollEnabled 设置图片是否滚动

  3>userInteractionEnabled  设置用户交互

  4>contentOffset 凡是看到offset 就是指的偏移, 需要让内容移动到想要的地方,就需要使用偏移值注意的是.改偏移可以看到是距离可以使用代码来控制内容的滚动

  5>contentInset 是一个结构题,表示content的内边距.contentInset 不参与 offset 的计算

  6> bounces  设置弹簧效果

  7> showHorizontalScrollIndicater 设置水平滚动条

  8> showVerticalScrollIndicater  设置垂直滚动条

1    //Contentoffset  有一个动画的的方法
2   [self.scrollView setContentOffset:偏移的距离,如果宽和高等于UIScrollView的宽和高,可以用0带代替 animated:是否动画]

3.UIScrollView的代理方法:

  

 1     - (void)scrollViewDidScroll:(UIScrollView *)scrollView {
 2         // 这个方法是 只要 UIScrollView 一滚动, 就会调用的方法
 3     }
 4
 5     - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
 6         // 开始拖拽的时候调用, 强调开始
 7     }
 8
 9     - (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset {
10         // 手指抬起就调用
11     }
12
13     - (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {
14         // 手指抬起就调用
15     }
16
17     - (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView {  
18         // 如果手指抬起的时候, scrollView 还在因为惯性移动, 这个方法才会调用
19     }
20
21     - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {     
22         // 在手指移动后, 由于惯性停下时 才会被调用. 如果手指移开的时候没有惯性, 这个方法也不会调用
23     }
24
25     - (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView {
26         // 使用 setContentOffSet: animated: 方法, 有动画的时候, 动画结束时 调用, 否则不会调用
27     }
28
29      状态栏 必须显示
30     - (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView {
31         // 点击状态栏, scrollView 会自动滚动到开始的位置, 如果返回 NO 则没有响应
32     默认情况下是YES
33         return NO;
34     }
35
36     - (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView { 
37         // 在滚动到顶端后调用
38     }
39
40     - (void)scrollViewDidScroll:(UIScrollView *)scrollView {
41         // 在滚动的时候调用
42 }

4.设置图片的缩放:

  // 放大图片
    // 1, 设置放大的倍数 zoom
    // minimun  最小
    // maximun  最大
    
    //设置最大的倍数
    self.scrollView.maximumZoomScale = 10;
    //设置最小的倍数
    self.scrollView.minimumZoomScale = 1;

    //这个方法是告诉我要缩放的是那一个控件
    - (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
        return [scrollView viewWithTag:1024];
}

5.页码的常见属性:

 1   //设置总页数
 2     self.pageControl.numberOfPages = self.imgCount;
 3     //设置从哪里开始
 4     self.pageControl.currentPage = 0;
 5    // 设置当前页码的颜色
 6     self.pageControl.pageIndicatorTintColor = [UIColor blueColor];
 7     //设置其他页码的颜色
 8     self.pageControl.currentPageIndicatorTintColor = [UIColor redColor];
 9
10     //记录当前ScrollView的宽度
11     scrollView.contentOffset.x
12     //计算当图片滚动一半多一点的时候就让页码跳到下一个
13   NSInteger pageIndex = (scrollView.contentOffset.x + scrollView.bounds.size.width / 2) / scrollView.bounds.size.width;

  简单的判断语句,可以用三目运算符实现.在三目运算符的时候,不要用++ 用+1就好了

  

1 pageIndex = pageIndex == self.imgCount - 1 ? 0 : pageIndex + 1;

6.控制图片的自动滚动:

需要设置一个计时器,让页面自动的滚动  setContentOffset: animated:

计时器一旦创建,就会一直执行,如果想让他停止就必须销毁他,如果想让执行就在创建一个

1     //开启计时器:
2     NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:时间 target:操作谁 selector:要操作的方法 userInfo:传递参数 repeats:是否重复];
3     //停止计时器
4   [timer incaledate];

每一个程序的执行都是像在画画一样,如果同时让他执行两个线程的话,他会先去执行主要的线程,我们之前的那个线程就会停止,所以我们改变一下他的运行循环

1 //修改 计时器执行代码的模式
2    // 获得主运行循环
3     NSRunLoop *runloop = [NSRunLoop mainRunLoop];
4     [runloop addTimer:self.timer forMode:NSRunLoopCommonModes];
5
6     NSDefaultRunLoopMode 默认的情况下啊
7     NSRunLoopCommonModes 获得主运行循环    
时间: 2024-12-29 23:35:45

UIScrollView的介绍及使用:的相关文章

UIScrollView 和UIPageControl 实现app启动滑动图

一.使用NSUserDefaults 判断滑动图有没有出现过,加载滑动图 NSUserDefaults 简介: NSUserDefaults可以将数据永久的保存在手机中,他是一个单例,用起来很方便,所以很适合用于保存简单的数据和为数据做标记 你可以选择在AppDelegate.m中的didFinishLaunchingWithOptions 方法或者"初始界面"(加载的第一个viewController)的 viewDidLoad 方法中进行判断滑动图是否出现过,写上代码: NSUse

UIScrollView控件介绍

一.知识点简单介绍 1.UIScrollView控件是什么? (1)移动设备的屏幕?大?小是极其有限的,因此直接展?示在?用户眼前的内容也相当有限 (2)当展?示的内容较多,超出?一个屏幕时,?用户可通过滚动?手势来查看屏幕以外的内容 (3)普通的UIView不具备滚动功能,不能显?示过多的内容 (4)UIScrollView是一个能够滚动的视图控件,可以?用来展?示?大量的内容,并且可以通过滚 动查看所有的内容 (5)  举例:手机上的“设置”.其他?示例程序 2.UIScrollView的简

iOS开发UI篇—UIScrollView控件介绍

一.知识点简单介绍 1.UIScrollView控件是什么? (1)移动设备的屏幕?大?小是极其有限的,因此直接展?示在?用户眼前的内容也相当有限 (2)当展?示的内容较多,超出?一个屏幕时,?用户可通过滚动?手势来查看屏幕以外的内容 (3)普通的UIView不具备滚动功能,不能显?示过多的内容 (4)UIScrollView是一个能够滚动的视图控件,可以?用来展?示?大量的内容,并且可以通过滚 动查看所有的内容 (5)  举例:手机上的“设置”.其他?示例程序 2.UIScrollView的简

介绍UIScrollView

1.介绍UIScrollView 2.大图展示(UIScrollView使用) 1.给scrollView添加内容 2.设置contentSize属性(只能在代码中设置) 3.UIScrollView重要属性 1.contentOffset(通过按钮改变其位移) 2.contentInset 注意:通过stroryboard设置立即生效,通过代码设置需配合contentOffect手动位移 3.其他属性 4.喜马拉雅 1.storyboard界面布局(减少代码) 2.通过最后按钮的frame获取

IOS 05 UIScrollView介绍 图片轮播器

移动设备的屏幕?大?小是极其有限的,因此直接展?示在?用户眼前的内容也相当有限 当展?示的内容较多,超出?一个屏幕时,?用户可通过滚动?手势来查看屏幕以外的内容 普通的UIView不具备滚动功能,不能显?示过多的内容 UIScrollView是?一个能够滚动的视图控件,可以?用来展?示?大量的内容,并且可以通过滚 动查看所有的内容 在IOS中UIScrollView这个控件还是比较常用和重要的. 很多时候,我们想在UIScrollView正在滚动 或 滚动到某个位置 或者 停?止滚动 时做?一些

UIScrollView控件的一些简单介绍

1.UIScrollView控件是什么 (1)移动设备的屏幕大小是有限的,因此直接展示在用户眼前的数据内容也是有限的 (2)当展示的内容过多,超出屏幕时,用户可以通过滚动手势来查看屏幕以外的内容 (3)普通的UIView不具备滚动功能,不能显示过多的内容 (4)UIScrollView是一个可以滚动的视图控件,可以展示大量内容,并且可以通过滚动手势查看所有内容 2. UIScrollView的简单使用 (1)将要展示的内容添加到UIScrollView中 (2)设置UIScrollView的co

iOS开发UI篇—UITableview控件简单介绍

一.基本介绍 在众多移动应?用中,能看到各式各样的表格数据 . 在iOS中,要实现表格数据展示,最常用的做法就是使用UITableView,UITableView继承自UIScrollView,因此支持垂直滚动,?且性能极佳 . UITableview有分组和不分组两种样式,可以在storyboard或者是用代码设置. 二.数据展示 UITableView需要?一个数据源(dataSource)来显示数据UITableView会向数据源查询一共有多少行数据以及每?行显示什么数据等 没有设置数据源

Masonry介绍与使用实践:快速上手Autolayout

以上是纯手写代码所经历的关于页面布局的三个时期 在iphone1-iphone3gs时代 window的size固定为(320,480) 我们只需要简单计算一下相对位置就好了 在iphone4-iphone4s时代 苹果推出了retina屏 但是给了码农们非常大的福利:window的size不变 在iphone5-iphone5s时代 window的size变了(320,568) 这时autoresizingMask派上了用场(为啥这时候不用Autolayout? 因为还要支持ios5呗) 简单

iOS开发基础-UITableView控件简单介绍

 UITableView 继承自 UIScrollView ,用于实现表格数据展示,支持垂直滚动.  UITableView 需要一个数据源来显示数据,并向数据源查询一共有多少行数据以及每一行显示什么内容等.凡是遵守 UITableViewDataSource 协议的Objc对象,都可以是 UITableView 的数据源.  - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView  返回共有多少组数据.  - (NSI