//
//  ViewController.m
//  UIScollView
//
//  Created by hehe on 15/9/25.
//  Copyright (c) 2015年 wang.hehe. All rights reserved.
//

#import "ViewController.h"
#define width_screen self.view.bounds.size.width
#define height_screen self.view.bounds.size.height

@interface ViewController ()
{
 
}
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    self.view.backgroundColor = [UIColor grayColor];
    
    [self createUiScroview];  //创建滚动视图
    
    [self createLabel]; //第几页
    
    [self creatUIPageControl];   //创建页面控制器
    
}

#pragma mark    ------------------------createLabel
- (void)createLabel
{
    UILabel *label= [[UILabel alloc]init];
    
    label.frame = CGRectMake(0, height_screen-50, 50, 50);
    
    label.text = @"第一页";
    
    label.textColor = [UIColor redColor];
    
    label.font =  [UIFont systemFontOfSize:20];
    
    label.textAlignment = 1;
    
    label.adjustsFontSizeToFitWidth = YES;
    
    [self.view addSubview:label];
    
    label.tag = 11;
    
}

#pragma mark    ------------------------creatUIPageControl
- (void)creatUIPageControl
{
    UIPageControl *pc = [[UIPageControl alloc] init];
    
    pc.frame = CGRectMake(100, height_screen-30, 200, 30);
    
    [self.view addSubview:pc];
    
    pc.numberOfPages = 4;   //多少页
    
    pc.currentPage = 1;     //当前页数
    
    pc.pageIndicatorTintColor = [UIColor greenColor];   //页的颜色
    
    pc.currentPageIndicatorTintColor = [UIColor orangeColor];//当前页颜色
    
    pc.backgroundColor = [UIColor whiteColor];//加背景颜色
    
    [self.view addSubview:pc];
    
    pc.tag = 101;
}

#pragma mark    ------------------------滚动视图协议方法
//实现代理的方法
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
    //实现缩放功能,需要两步,第二部
    //在滚动视图中对哪一个视图进行缩放
    return scrollView.subviews[0];

}

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
    
    UILabel *label1 = (id)[self.view viewWithTag:11];
    
    UIPageControl *pc1 = (id)[self.view viewWithTag:101];

int offset = scrollView.contentOffset.x/self.view.bounds.size.width;
    
    if(offset==5)
    {
        scrollView.contentOffset = CGPointMake(self.view.bounds.size.width*1, 0);
    }
    else if (offset==0)
    {
        scrollView.contentOffset = CGPointMake(self.view.bounds.size.width*4, 0);
    }

switch (offset)
    {
        case 0:
        {
            label1.text = @"第四页";
            pc1.currentPage = 3;
            break;
        }
        case 1:
        {
            pc1.currentPage = 0;
            label1.text = @"第一页";
            break;
        }
        case 2:
        {
            pc1.currentPage = 1;
            label1.text = @"第二页";
            break;
        }
        case 3:
        {
            pc1.currentPage = 2;
            label1.text = @"第三页";
            break;
        }
        case 4:
        {
            pc1.currentPage = 3;
            label1.text = @"第四页";
            break;
        }
        case 5:
        {
            pc1.currentPage = 0;
            label1.text = @"第一页";
            break;
        }
        default:
            break;
    }
}

- (void)createUiScroview
{
    //创建滚动视图对象
    UIScrollView *sv = [[UIScrollView alloc] init];
    
    sv.frame = self.view.bounds;
    
    [self.view addSubview:sv];
    
    sv.backgroundColor = [UIColor orangeColor];
    
    sv.contentOffset = CGPointMake(self.view.bounds.size.width,0);  //偏移量是一个点
    
    //设置每页的图片,大小
    for(int i=0;i<6;i++)
    {
        UIImageView *iv = [[UIImageView alloc] initWithFrame:CGRectMake(self.view.bounds.size.width*i, 0, self.view.bounds.size.width, self.view.bounds.size.height)];
        
        [sv addSubview:iv];
        
        if(i==0)
        {
            iv.image = [UIImage imageNamed:@"3"];
        }
        else if (i==5)
        {
            iv.image = [UIImage imageNamed:@"0"];
        }
        else
        {
            iv.image = [UIImage imageNamed:[NSString stringWithFormat:@"%d",i-1]];
        }
        
    }
    sv.contentSize = CGSizeMake(self.view.bounds.size.width*6, self.view.bounds.size.height);
    
    //UIImageView *iv = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"4.jpg"]];//这个方法加入的原图大小
    
    sv.bounces = NO;   //控制是否反弹,默认是反弹的
    
    sv.indicatorStyle = UIScrollViewIndicatorStyleWhite;//设置滚动条的样式
    
    sv.scrollIndicatorInsets = UIEdgeInsetsMake(0, 0 , 0, 30);//设置滚动条的位置
    
    sv.showsVerticalScrollIndicator = NO;//设置隐藏滚动条
    sv.showsHorizontalScrollIndicator = NO;
    
    //sv.scrollEnabled = NO;//设置是否滚动,让不让滚动
    
    sv.pagingEnabled = YES; //按页滚动,最后必须进去某一页//设置按页滚动
    
    sv.scrollsToTop = NO;  //默认是Yes//设置在下边的时候可以回到顶部
    
    sv.delegate = self; //有代理<UIScrollViewDelegate>
    
    //设置pinch第一步
    sv.minimumZoomScale = 0.5;//最小缩放比例,默认值是1
    sv.maximumZoomScale = 5;
    
    //设置减速率:1往后的差不多,值越大挺的越慢
    sv.decelerationRate = 0;
}

@end

滚动视图和页面控制UIScollView,UIpageControlDemo的更多相关文章

  1. 制作滚动视图(ScrollView)

    怎样判断是否应当使用滚动视图 所谓的滚动视图,是指一个可以滑动的视窗,视窗大小和位置固定不变,视窗内的内容用户可以通过手指滑动或者拖动滚动天来进行滚动浏览. 滚动视图的目的是为了解决同类内容过多,一个 ...

  2. swift:创建滚动视图的图片轮播器

    用swift创建图片轮播器和用OC创建的方式是一样的,都主要用到UIScrollView和UIImageview这两个控件,有几张图片,就将滚动视图的内容区域大小设置为每一张图片的大小乘以张数即可.然 ...

  3. IOS-UI- UIScrollView 滚动视图(1)

    滚动视图多个页面实现的原理 滚动视图位置不变 内容的位置发生改变. 滚动视图的运用1.分页查看图片 2.查看大图片 3.当内容过多需要一个页面显示,如:注册,修改个人信息等等4.当不希望用户感觉咱们的 ...

  4. Android应用--新浪微博客户端新特性滚动视图和启动界面实现

    新浪微博客户端新特性滚动视图和启动界面实现 2013年8月20日新浪微博客户端开发之启动界面实现 前言: 使用过新浪微博客户端的童鞋都清楚,客户端每一次升级之后第一次启动界面就会有新特性的介绍,用户通 ...

  5. UGUI 滚动视图

    滚动视图是常用的UI控件之一,它是由多个基本控件组合而成.如图 ==================================================================== ...

  6. Swift - 滚动视图(UIScrollView)的用法

    1,当图片尺寸超过屏幕时,使用UIScrollView可以实现滚动条视图,即手指触摸滚动屏幕方便浏览整个页面. 1 2 3 4 5 6 var scrollView=UIScrollView() sc ...

  7. 雷林鹏分享:jQuery EasyUI 数据网格 - 使用虚拟滚动视图显示海量数据

    jQuery EasyUI 数据网格 - 使用虚拟滚动视图显示海量数据 数据网格(datagrid)的虚拟滚动特性可以用来显示大数量的记录而不需要分页. 当滚动垂直滚动条时,数据网格(datagrid ...

  8. UIScrollView 滚动视图—IOS开发

    转自:http://blog.csdn.net/iukey/article/details/7319314 UIScrollView 类负责所有基于 UIKit 的滚动操作. 一.创建 CGRect  ...

  9. OCUI界面设计:滚动视图与分页控件初探

    滚动视图(UIScrollView) 简单介绍 1.UIScrollView滚动视图能够排列并显示超出自身显示范围的内容. 2.UIScrollView内部整合了多种手势来达到丰富的界面展示效果. 3 ...

随机推荐

  1. hdu4336 Card Collector 概率dp(或容斥原理?)

    题意: 买东西集齐全套卡片赢大奖.每个包装袋里面有一张卡片或者没有. 已知每种卡片出现的概率 p[i],以及所有的卡片种类的数量 n(1<=n<=20). 问集齐卡片需要买东西的数量的期望 ...

  2. java生成汉字验证码

    java实现的汉字输入验证码,主要包含两个类,一个是生成验证码,一个是判断验证码输入是否正确,实现原理非常简单,将汉字和干扰线生成图片并将汉字保存到session,前台获取每次生成验证码图片并用文本框 ...

  3. iOS 开发——实用技术Swift篇&Swift 懒加载(lazy)

    Swift 懒加载(lazy) 在程序设计中,我们经常会使用 * 懒加载 * ,顾名思义,就是用到的时候再开辟空间,比如iOS开发中的最常用控件UITableView,实现数据源方法的时候,通常我们都 ...

  4. Lvalue, Rvalue, Xvalue, Prvalue, Glvalue

    c++11中关于什么是lvalue, 什么是rvalue, 什么是xvalue, 什么是prvalue, 什么是… 一直搞得我晕头转向的, 今天下定决心一定要把它搞定, 写了一个程序来判断lvalue ...

  5. THD 变量存入threads中

    http://blog.csdn.net/gapaul/article/details/12047497 http://ourmysql.com/archives/930

  6. 转:《JavaScript—之对象参数的引用传递》

    转自:博客园 Wayou http://www.cnblogs.com/Wayou/p/javascript_arguments_passing_with_reference.html 变量 1.Ja ...

  7. storm 分组

    Stream Groupings: Stream Grouping定义了一个流在Bolt任务间该如何被切分.这里有Storm提供的6个Stream Grouping类型: 1. 随机分组(Shuffl ...

  8. android MotionEvent中getX()和getRawX()的区别

    public class Res extends Activity implements View.OnTouchListener { Button btn = null; int x = 0; in ...

  9. 【阿里云产品公测】云引擎ACE -discuz安装

    作者:阿里云用户云想未来 谢谢支持.为什么写的比较简单就是为方便新手谁想要很麻烦?亲测按这个教程可以安装成功!时间紧迫不发图片了纯原创 排版您请谅解 进入创建新应用的信息填写界面,此处需要填写一个赠送 ...

  10. 18个有用的 .htaccess 文件使用技巧

    .htaccess 是 Web 服务器 Apache 中特有的一个配置文件,操控着服务器上的许多行为,我们可以利用它来做许多事情,例如:设置访问权限,网址重定向,等等.本文向大家展示18条 .htac ...