//
//  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. UVA 253 (13.08.06)

     Cube painting  We have a machine for painting cubes. It is supplied withthree different colors: blu ...

  2. !"false"==fasle

    首先要搞清楚优先级 !"false" --->false false == false;---->true !""--->true; !&qu ...

  3. [Ember] Ember.js Templates

    In this lesson, we'll go over some of the basics of Ember.js templates and how they work with contro ...

  4. C++11 之for 新解

     前言     C++11这次的更新带来了令非常多C++程序猿期待已久的for range循环,每次看到javascript. lua里的for range.心想要是C++能有多好,心里别提多酸了.这 ...

  5. SimpleUrlHandlerMapping 处理器映射的配置--转

    http://blog.csdn.net/rainier001/article/details/6860491 <?xml version="1.0" encoding=&q ...

  6. Linux Shell远程执行命令(命令行与脚本方式)

    需求:经常需要在一台服务器远程到其他节点的服务器上执行一些shell命令,如果分别ssh到每台主机上再去执行很麻烦,因此能有个集中管理的方式就好了.介绍两种shell命令远程执行的方法. 方式一: s ...

  7. 自定义强大的C#网络操作基础类(NetHelper)

    using System; using System.Text;using System.Net.Sockets;using System.Net.Mail;using System.Net; nam ...

  8. 从源码的角度分析ViewGruop的事件分发

    从源码的角度分析ViewGruop的事件分发. 首先我们来探讨一下,什么是ViewGroup?它和普通的View有什么区别? 顾名思义,ViewGroup就是一组View的集合,它包含很多的子View ...

  9. c++ 的几种强制转换的讨论

    http://www.cnblogs.com/jerry19880126/archive/2012/08/14/2638192.html static_cast  : 同 c 的强制转换类似: rei ...

  10. 使用hibernate配置多数据源链接MySQL和Oracle数据库

    最近做项目要将读取到的数据同时插入到MySQL数据库和Oracle数据库当中,以前都是使用一个数据库,没有用过多数据源的情况,现在把这个问题搞定了,写下来希望对大家有点帮助,可能我所使用的方法不是最好 ...