滚动视图和页面控制UIScollView,UIpageControlDemo

//
//  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

时间: 2024-07-29 17:44:30

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

UI06-scrollView 滚动视图 pagecontroll 页面控制

1.scrollView  滚动视图 2.pagecontroll 页面控制 3.轮播图 1.scrollview是可以滚动的视图,UI view本身不具备滚动效果的,scrollview拓展了滚动功能,scrollview是所有可以滚动视图的基类 ,uitableview,uicollectionview都是继承自该类.意味着这两个类可以使用scrollview的属性‘ 2.scrollview的应用场景,(1)长图,大图,显示不了的,(2)内容太多,放不下的 3.scrollview 主体架

UIScrollView 按页面滚动视图 UIPageControl

1.UIScrollView是可以滚动的view,UIView本?身不能滚动,子类UIScrollview拓展了滚动?方?面的功能. 2.UIScrollView是所有滚动视图的基类.以后的UITableView,UITextView等视图都是继承于该类. 3.UIScrollview主要专?长于两个?方?面: (1).滚动:contentSize?大于frame.size的时候,能够滚动. (2).缩放:?自带缩放,可以指定缩放倍数. UIScrollView滚动的相关属性 1.content

UIScrollView(滚动视图)和(UIPageController)页面控制器+ 定时器的使用

////  Teacher_ViewController.m//  友家家教////  Created by 邹贤 on 15/7/28.//  Copyright (c) 2015年 友家科技公司. All rights reserved.// #import "Teacher_ViewController.h" #import "ArtViewController.h" #import "PrimaryViewController.h" #i

滚动视图 UIScrollView

UIScrollView:提供可以显?示?大于应?用窗??口的内容功能的控件, ?用户可以通过?手势使内容滚动和缩放,从?而查 看全部内容. 初始化一个UIScrollView的对象 1 UIScrollView *_scroll=[[UIScrollView alloc] init]; 首先介绍一下UIScrollView这个类的基本属性 属性:  contentSize     滚动视图的内容大小 //UIScrollView能够滚动的前提是contentsize大于大的本身尺寸.即大于fr

制作滚动视图(ScrollView)

怎样判断是否应当使用滚动视图 所谓的滚动视图,是指一个可以滑动的视窗,视窗大小和位置固定不变,视窗内的内容用户可以通过手指滑动或者拖动滚动天来进行滚动浏览. 滚动视图的目的是为了解决同类内容过多,一个UI版面显示不下的情况.如果同类内容过多,一般可以采取设置多个页面,然后通过翻页浏览的方式来浏览,但是很明显,滚动视图会比翻页更方便,因为在移动上可以很方便地花瓶进行滚动,在PC上可以通过鼠标的滚动进行滚动. 当需要判断是否应该使用滚动视图制作UI时,可以遵循以下规律: (1)有很多同类内容一个版面

程序日志--ios“页面控制”程序

</pre>交代一下我做程序的工具:mac os x虚拟机10.9.3         Xcode6         百度^-^         参考书iPhone30天精通:本程序是第13天+第14天的集合<p></p><p></p><p>这是参考书上的第13天的程序:书上的程序是为程序中的每一个视图控件页面指定一个小圆点,并使用白色的原点来显示当前页面,点击Page Control控件上面的小圆点来引导程序翻页....但是,这种翻

滚动视图性能优化的几种方式

目的: - 我们每次发布IOS时都会有一些新特性页面,当然还有广告条都会用到滚动视图.那么如何性能优化呢?目前就我所知有两种方案,一种就是常用的2-3张图片重复利用,另一种就是今天主要讲的利用UICollectionView来做. - 今天就做一个新特性页面为例 步骤: 方法一:利用UICollectionView 1.UICollectionView继承UIScrollView,我们要用滚动视图,肯定会用到ScrollView,而如何我们把collectionView中的一个Item当作滚动视

UGUI 滚动视图

滚动视图是常用的UI控件之一,它是由多个基本控件组合而成.如图 ================================================================================== 两个必备控件简单介绍: Scroll Rect控件: Horizontal 是否支持水平滚动 Vertical 是否支持上下滚动 MovementType 移动的方式: 感觉设置都没什么用处Unrestricted 自由的Elastic 有弹性的Clamped 夹紧的

UGUI 背包滚动视图(无限滚动)

=.= 最近负责道具背包系统开发, 主程非要把滚动视图制作成无限滚动这样的话可以节约内存, 其实我想说的是没必要这么恐惧内存,但是需求来了还是照着制作一个,每次滚动的时候刷新对应单元格数据即可. 效果图: 核心代码: using UnityEngine; using System.Collections; using System.Collections.Generic; using UnityEngine.UI; using UnityEngine.EventSystems; [Require