文档章节

IOS 学习---滑动视图(UIScrollerView)详解

fengyun321
 fengyun321
发布于 2015/09/12 20:42
字数 682
阅读 54
收藏 0

滑动视图的使用

   
   //滑动视图的创建,并设置frame值
    UIScrollView *scroller = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, 375, 300)];
    // 设置滑动视图内容的大小
    scroller.contentSize = CGSizeMake(800, 900);
    scroller.backgroundColor = [UIColor blackColor];
    [self.view addSubview:scroller];
    UIView *view = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 375, 300)];
    view.backgroundColor = [UIColor  blackColor];
    [scroller addSubview:view];
    
    UIView *view2 = [[UIView alloc]initWithFrame:CGRectMake(375, 0, 375, 300)];
    view.backgroundColor = [UIColor  orangeColor];
    [scroller addSubview:view2];
    
    UIView *view3 = [[UIView alloc]initWithFrame:CGRectMake(0, 200, 375, 300)];
    view3.backgroundColor = [UIColor  redColor];
    [scroller addSubview:view3];

    //设置滚动条
     scroller.showsHorizontalScrollIndicator = NO;
    
    scroller.showsVerticalScrollIndicator = NO;
    
    //设置样式
    scroller.indicatorStyle = UIScrollViewIndicatorStyleBlack;
    
    scroller.indicatorStyle = UIScrollViewIndicatorStyleWhite;
    scroller.indicatorStyle = UIScrollViewIndicatorStyleDefault;
    
    //反弹效果
    
    //scroller.bounces = NO;
    
    //内容偏移量具体左边和上边的位置时300 200;
    
    //scroller.contentOffset = CGPointMake(300, 200);
    
    //分页显示
    scroller.pagingEnabled = YES;
    //禁用滑动效果
   // scroller.scrollEnabled = NO;  
}

   滑动视图代理方法,对滑动视图进行缩放

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    UIScrollView *scorllView = [[UIScrollView alloc]initWithFrame:self.view.bounds];
    [self.view addSubview:scorllView];
    UIImageView *imgView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 320, 568)];
    imgView.image = [UIImage imageNamed:@"5.jpeg"];
    imgView.tag = 100;
    [scorllView addSubview:imgView];
    scorllView.delegate = self;
    //设置图片的缩放比例
    scorllView.minimumZoomScale = 0.5;
    scorllView.maximumZoomScale = 2.0;
    scorllView.bouncesZoom = NO;
    
}
//实现UIScrollerView的代理方法
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
    UIImageView *imgView = (UIImageView *)[scrollView viewWithTag:100];
    return imgView;
}

   滑动视图代理方法,使用滑动视图进行分页,并且使其显示的图片可以可以循环滚动。

   使视图实现循环滚动的整体思想:假如一共有6页,6张图片是按次序排好的,则在第一页的前面放第六张图片,在最后一页的后面放第一页的图片,当图片滑动到该循环的地方时,改变图片的偏移量,这样当用户滑动的时候图片出现的不是太突兀。只是通过改变偏移量就ok了!

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    
    // 创建滚动视图
    [self creatScrollView];
    
    
}
- (void)creatScrollView
{
   //创建滑动视图
    UIScrollView *scrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, KWIDTH, KHEIGHT)];
    
    scrollView.backgroundColor = [UIColor blueColor];
    [self.view addSubview:scrollView];
    
    //设置滑动视图的分页状态
    scrollView.pagingEnabled = YES;
   // 利用for循环,在滑动视图上添加imageview 并添加图片
    for (int i = 0; i < 6; i ++)
    {
        NSString *imgStr = [NSString stringWithFormat:@"%d.jpeg",i + 1];
        UIImageView *imgView = [[UIImageView alloc]initWithFrame:CGRectMake((i + 1) * KWIDTH, 0 , KWIDTH, KHEIGHT)];
        imgView.image = [UIImage imageNamed:imgStr];
        [scrollView addSubview:imgView];

        
    }
    //设置滑动视图内容的大小
    scrollView.contentSize = CGSizeMake(KWIDTH * 8, KHEIGHT);
    //设置代理
    scrollView.delegate = self;
    
    UIImage *img1 = [UIImage imageNamed:@"1.jpeg"];
    UIImageView *imgView1 = [[UIImageView alloc]initWithFrame:CGRectMake(7 * KWIDTH, 0, KWIDTH, KHEIGHT)];
    imgView1.image = img1;
    [scrollView addSubview:imgView1];
    
    UIImage *img2 = [UIImage imageNamed:@"6.jpeg"];
    UIImageView *imgView2 = [[UIImageView alloc]initWithFrame:CGRectMake( 0, 0, KWIDTH, KHEIGHT)];
    imgView2.image = img2;
    [scrollView addSubview:imgView2];
    
    //pageContr为全局变量
    pageContr = [[UIPageControl alloc]initWithFrame:CGRectMake(150, KHEIGHT - 50, 100, 50)];
    设置当前页及页数
    pageContr.currentPage = 0;
    pageContr.numberOfPages = 6;
    [self.view addSubview:pageContr];
    

    
}
//实现scrollViewDidEndDecelerating,滑动视图没有速度时调用的代理方法
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
    pageContr.currentPage = (int)(scrollView.contentOffset.x + KWIDTH/2)/KWIDTH;
    
    if (scrollView.contentOffset.x == 7 * KWIDTH)
    {
        scrollView.contentOffset = CGPointMake(KWIDTH, 0);
        
    }
    if(scrollView.contentOffset.x == 0)
    {
        scrollView.contentOffset = CGPointMake(6 * KWIDTH, 0);
        
    }

}







© 著作权归作者所有

fengyun321
粉丝 3
博文 31
码字总数 16462
作品 0
海淀
程序员
私信 提问
【书坊赠书福利——第二期】《iOS 8开发指南》

本周是人邮IT书坊赠书的第二期,第一期参与度极高,微信君在此感谢你们的支持,第一期获奖赠书已全部寄出。 本周赠品 本周,微信君给大家推荐@人民邮电出版社-信息技术分社 刚刚上架的新书《...

生气的散人
2014/09/23
387
0
IOS学习,最简单的表格应用程序,学习,列出博客

IOS编程浅蓝教程,这是博客地址http://www.cnblogs.com/haichao/category/425378.html IOS编程浅蓝教程:锲子 IOS编程浅蓝教程(一)先决条件:开始iOS编程的必要准备 IOS编程浅蓝教程(二) Hel...

andy521zhu
2015/01/17
186
0
设计 iOS 应用时需要知道的 5 件事

根据我们制作优秀的 iOS 应用的经验,我们认为设计师应该在心里的牢记适用于 iOS 的 5 件事。虽然本文关注的重点只在 iOS 应用,但大部分的意见也适用于其他移动平台。 1. 了解您的媒体 这似...

oschina
2013/03/21
3.9K
7
iOS多种刷新样式、音乐播放器、仿抖音视频、旅游App等源码

iOS精选源码 企业级开源项目,模仿艺龙旅行App(http://www.code4app.com/thread-14774-1-1.html) 3D立体相册,可以旋转的立方体(http://www.code4app.com/thread-14966-1-1.html) 横竖屏切换...

Android爱开源
2018/10/17
145
0
一步一步学习iOS 5编程(第三版)-PDF中文版-正式发布!

目前,这是第一本介绍iOS 5.x 和 Xcode 4.4 的中文版书籍,尤其适合于iOS 编程开发初学者。本教程由 EntLib.com 团队编写。如有任何技术问题,欢迎留言。 电子版 – PDF 格式,支持iPhone、i...

entlib
2012/09/20
797
2

没有更多内容

加载失败,请刷新页面

加载更多

nginx学习笔记

中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯。 是连接两个独立应用程序或独立系统的软件。 web请求通过中间件可以直接调用操作系统,也可以经过中间件把请求分发到多...

码农实战
今天
5
0
Spring Security 实战干货:玩转自定义登录

1. 前言 前面的关于 Spring Security 相关的文章只是一个预热。为了接下来更好的实战,如果你错过了请从 Spring Security 实战系列 开始。安全访问的第一步就是认证(Authentication),认证...

码农小胖哥
今天
11
0
JAVA 实现雪花算法生成唯一订单号工具类

import lombok.SneakyThrows;import lombok.extern.slf4j.Slf4j;import java.util.Calendar;/** * Default distributed primary key generator. * * <p> * Use snowflake......

huangkejie
昨天
12
0
PhotoShop 色调:RGB/CMYK 颜色模式

一·、 RGB : 三原色:红绿蓝 1.通道:通道中的红绿蓝通道分别对应的是红绿蓝三种原色(RGB)的显示范围 1.差值模式能模拟三种原色叠加之后的效果 2.添加-颜色曲线:调整图像RGB颜色----R色增强...

东方墨天
昨天
11
1
将博客搬至CSDN

将博客搬至CSDN

算法与编程之美
昨天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部