UI开发----UIScrollView和UIPageControl简单模拟滚动视图

//  Created By 郭仔

//==================================================

师傅领进门,修行在个人!自学才是王道!

//==================================================

UIScrollView:

UIScrollView * scrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(20, 50, 200, 200)];

    scrollView.backgroundColor = [UIColor greenColor];
    [self.view addSubview:scrollView];
    // 设置内容大小,当contentSize大于scrollView.frame.size才能滑动
    scrollView.contentSize = CGSizeMake(1000, 1000);

    UIView * view = [[UIView alloc]initWithFrame:CGRectMake(50, 50, 50, 50)];
    view.backgroundColor = [UIColor redColor];
    [scrollView addSubview:view];
    scrollView.showsHorizontalScrollIndicator = YES;
    scrollView.showsVerticalScrollIndicator =  YES;
   // scrollView.contentOffset = CGPointMake(50, 50);
  //  scrollView.pagingEnabled = YES;
    UIView * view2 = [[UIView alloc]initWithFrame:CGRectMake(200, 50, 50, 50)];
    view2.backgroundColor = [UIColor blackColor];
    [scrollView addSubview:view2];
    [view2 release];
    scrollView.bounces = YES;)
    scrollView.scrollsToTop = YES;
    scrollView.scrollEnabled = YES;
    scrollView.alwaysBounceHorizontal = NO;
    scrollView.alwaysBounceVertical = YES;
    scrollView.minimumZoomScale = 0.5;
    scrollView.maximumZoomScale = 2;
    scrollView.zoomScale = 1.5;
    // 设置代理
    scrollView.delegate = self;

如果要实现缩放功能,则需要遵循UIScrollViewDelegate,设置自身为代理。

例如:

- (UIView *)
            viewForZoomingInScrollView:
            (UIScrollView *)scrollView
{
   // NSLog(@"%@",NSStringFromCGSize(scrollView.contentSize));
    return [scrollView.subviews objectAtIndex:0];

}

// ==================================================================

UIPageView:

 UIPageControl *pageControl = [[UIPageControl alloc]initWithFrame:CGRectMake(50, 400, 200, 50)];
    pageControl.backgroundColor = [UIColor orangeColor];
    [self.view addSubview:pageControl];

    pageControl.numberOfPages = 5;
    pageControl.currentPage = 2;
    pageControl.pageIndicatorTintColor = [UIColor blueColor];
    pageControl.currentPageIndicatorTintColor = [UIColor whiteColor];
    [pageControl addTarget:self action:@selector(pageControlChange:) forControlEvents:UIControlEventValueChanged];

// ==================================================================

滚动视图的模拟:

UIScrollView * scrollView = [[UIScrollView alloc]initWithFrame:self.view.bounds];
    //
    _scrollView = scrollView;
    [self.view addSubview:scrollView];
    scrollView.pagingEnabled = YES;
    //
    scrollView.delegate = self;

    scrollView.contentSize = CGSizeMake(320*5, 568);
    // 把图片名放到数组里
    NSArray * imagesName = [NSArray arrayWithObjects:@"1.png",@"2.png",@"3.png",@"4.png",@"5.png", nil];

    for (int i = 0; i< imagesName.count; i ++)

    {

        UIImage * img = [UIImage imageNamed:[imagesName objectAtIndex:i]];
        UIImageView * imageView = [[UIImageView alloc]initWithFrame:CGRectMake(i*320, 0, 320, 568)];
        imageView.image = img;

        [scrollView addSubview:imageView];
        [imageView release];
    }

        UIPageControl * pageControl = [[UIPageControl alloc]initWithFrame:CGRectMake(50, 400, 200, 50)];
        pageControl.numberOfPages = 5;
        [pageControl addTarget:self action:@selector(pageChanged:) forControlEvents:UIControlEventValueChanged];
        pageControl.pageIndicatorTintColor = [UIColor redColor];
        pageControl.currentPageIndicatorTintColor = [UIColor blackColor];
        //
        self.pageControl = pageControl;
        [self.view addSubview:pageControl];
        [pageControl release];

    [scrollView release];

方法的实现:

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
    CGPoint offSet =  scrollView.contentOffset;
    int pageCount = offSet.x/320;
    _pageControl.currentPage = pageCount;

}

- (void)pageChanged:(UIPageControl *)control
{
    long currentPage = control.currentPage;
    CGPoint offSet = CGPointMake(currentPage * 320, 0);
    // 设置scrollView的偏移量
    [self.scrollView setContentOffset:offSet animated:YES];
}

//================================================================

思想思想还是思想,你懂的~~~~~~~~

时间: 2024-10-16 17:53:29

UI开发----UIScrollView和UIPageControl简单模拟滚动视图的相关文章

UI基础:UIScrollView、UIPageControl

UIScrollView UIScrollView 是可以滚动的视图,UIView本身不能滚动,子类UIScrollView扩展了滚动方面的功能. UIScrollView 是所有滚动视图的基类.以后的UItableView,UITextView等视图都是继承于该类. 使用场景:显示不下(单张大图);内容太多(图文混排);滚动头条(图片);相册等. 效果如图: UIScrollView的核心功能: UIScrollView主要专长两个方面: 滚动:contentSize大于frame.size的

UIscrollView和UIPageControl的循环滚动

因为昨天在网上找了很久,很多只能实现向右滚动,而且一张图一个imageview ,感觉工作量很可怕啊 ,  下面的例子就是不论你多少图 , 只和我代码里面的几个数值有关,  只需要修改分页和循环i的最大值,当然为了方便 , 您最好把图片的名字改成有序的 . 方便您添加到可变集合中. 如果这样的页面你有五页 或则更多都可以实现好像从最后一张图跳到第一张图. 这个其实总共只有3个image,图都是用循环加进去的 . 上代码 #import <UIKit/UIKit.h> #define WIDTH

制作滚动视图(ScrollView)

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

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

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

Cocos2d-X使用CCScrollView创建滚动视图

CCScrollView可以使游戏有滚动视图的效果,并且可以通过滚动视图切换游戏场景,滚动视图常用于游戏中选择关卡 实例1:使用CCScrollView创建一个简单的滚动视图 首先创建一个ScrollView类 然后在ScrollView.h中添加下面的代码 #ifndef __ScrollView_H__ #define __ScrollView_H__ #include "cocos2d.h" #include "cocos-ext.h" USING_NS_CC

Cocos2d-X采用CCScrollView创建滚动视图

CCScrollView滚动视图可以让游戏有效果,并能够通过滚动视图切换游戏场景,滚动视图通常用来选择在游戏中的级别 实例1:使用CCScrollView创建一个简单的滚动视图 首先创建一个ScrollView类 然后在ScrollView.h中加入以下的代码 #ifndef __ScrollView_H__ #define __ScrollView_H__ #include "cocos2d.h" #include "cocos-ext.h" USING_NS_C

学习IOS开发UI篇--UIScrollView/delegate/pagecontrol/UITimer

1.UIscrollView的属性 ================================================== 1.1 常见属性 @property(nonatomic) CGPoint contentOffset; 这个属性用来表示UIScrollView滚动的位置 @property(nonatomic) CGSize contentSize; 这个属性用来表示UIScrollView内容的尺寸,滚动范围(能滚多远) @property(nonatomic) UIE

【转】 iOS开发UI篇—UIScrollView控件实现图片轮播

原文:http://www.cnblogs.com/wendingding/p/3763527.html iOS开发UI篇—UIScrollView控件实现图片轮播 一.实现效果 实现图片的自动轮播            二.实现代码 storyboard中布局 代码: 1 #import "YYViewController.h" 2 3 @interface YYViewController () <UIScrollViewDelegate> 4 @property (w

iOS:UI系列之UIScrollview和UIPagecontrol

转眼间,又是一天,就这样忙忙碌碌的一天一天的过着, 不过还好,不是浑浑噩噩的,也算是小有所成,劳有所获吧,嘿嘿! 好了,到了总结的时间啦, 下面就为大家简单讲解下我今天学习的内容吧,希望对各位都有所帮助吧,同时也是对自己的一种激励,最终实现共赢吧 嘿嘿! 首先,在上课时间我们先简单讲述了UIScrollView, 它是一个滚动视图,继承于UIView,他没有自己的初始化方法,所以要用到父类的创建方法下面就为大家简单说明下其创建过程哈: UIScrollView *scrollView = [[U