• UIScrollView代码实现循环滚动


    iPhone开发应用中循环滚动一个UIScrollView代码实现是本文要介绍的内容,主要是介绍UIScrollView来实现循环滚动的案例,来看详细内容。

    //  testScrollViewViewController.m  

    //  testScrollView  

    //  Created by cash on 11-7-4.  

    //  Copyright 2011年 xbiii3s@gmail.com. All rights reserved.   

    #import "testScrollViewViewController.h"  

    @implementation testScrollViewViewController   

    @synthesize scrollView, slideImages;  

    #define WIDTH_OF_SCROLL_PAGE 320  

    #define HEIGHT_OF_SCROLL_PAGE 460  

    #define WIDTH_OF_IMAGE 320 #define HEIGHT_OF_IMAGE 460  

    #define LEFT_EDGE_OFSET 0   

    - (void)viewDidLoad {      

        scrollView = [[UIScrollView alloc] init];  

        CGRect scrollFrame;  

        scrollFrame.origin.x = 0;       

        scrollFrame.origin.y = 0;        

        scrollFrame.size.width = WIDTH_OF_SCROLL_PAGE;      

        scrollFrame.size.height = HEIGHT_OF_SCROLL_PAGE;      

        scrollView = [[UIScrollView alloc] initWithFrame:scrollFrame];      

        scrollView.bounces = YES;       

        scrollView.pagingEnabled = YES;       

        scrollView.delegate = self;       

        scrollView.userInteractionEnabled = YES;       

        slideImages = [[NSMutableArray alloc] init];      

        [slideImages addObject:@"IMG_0116.PNG"];      

        [slideImages addObject:@"IMG_0118.PNG"];      

        [slideImages addObject:@"IMG_0119.PNG"];      

        [slideImages addObject:@"main_bg.png"];      

         //add the last image first       

         UIImageView *imageView = [[UIImageView alloc]  

         initWithImage:[UIImage imageNamed:[slideImages objectAtIndex:([slideImages count]-1)]]]       

         imageView.frame = CGRectMake(LEFT_EDGE_OFSET, 0, WIDTH_OF_IMAGE, HEIGHT_OF_IMAGE);      

         [scrollView addSubview:imageView];      

         [imageView release];     

         for (int i = 0;i<[slideImages count];i++) {   

                //loop this bit          

                UIImageView *imageView = [[UIImageView alloc]  

                initWithImage:[UIImage imageNamed:[slideImages objectAtIndex:i]]];          

                imageView.frame = CGRectMake((WIDTH_OF_IMAGE * i) + LEFT_EDGE_OFSET + 320, 0, WIDTH_OF_IMAGE, HEIGHT_OF_IMAGE);          

                [scrollView addSubview:imageView];          

                [imageView release];  

          }      

           //add the first image at the end      

           imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[slideImages objectAtIndex:0]]];      

           imageView.frame = CGRectMake((WIDTH_OF_IMAGE * ([slideImages count] + 1)) + LEFT_EDGE_OFSET, 0, WIDTH_OF_IMAGE, HEIGHT_OF_IMAGE);  

            [scrollView addSubview:imageView];     

     

            [imageView release];      

            [scrollView setContentSize:CGSizeMake(WIDTH_OF_SCROLL_PAGE * ([slideImages count] + 2), HEIGHT_OF_IMAGE)];     

             [scrollView setContentOffset:CGPointMake(0, 0)];      

             [self.view addSubview:scrollView];     

              [self.scrollView scrollRectToVisible:CGRectMake(WIDTH_OF_IMAGE,0,WIDTH_OF_IMAGE,HEIGHT_OF_IMAGE) animated:NO];       

              [super viewDidLoad];} - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {   

          int currentPage = floor((self.scrollView.contentOffset.x - self.scrollView.frame.size.width 

                                 / ([slideImages count]+2)) / self.scrollView.frame.size.width) + 1;     

           if (currentPage==0) {    

                  //go last but 1 page          

       [self.scrollView scrollRectToVisible:CGRectMake(WIDTH_OF_IMAGE * [slideImages count],0,WIDTH_OF_IMAGE,HEIGHT_OF_IMAGE) animated:NO];  

     } else  

     if (currentPage==([slideImages count]+1)) {  

     //如果是最后+1,也就是要开始循环的第一个          

     [self.scrollView scrollRectToVisible:CGRectMake(WIDTH_OF_IMAGE,0,WIDTH_OF_IMAGE,HEIGHT_OF_IMAGE) animated:NO];  

    }   

    }   

    - (void)didReceiveMemoryWarning {    

      // Releases the view if it doesn't have a superview.      

      [super didReceiveMemoryWarning];      

      // Release any cached data, images, etc that aren't in use.  

      }  

     - (void)viewDidUnload {    

       // Release any retained subviews of the main view.     

        // e.g. self.myOutlet = nil;  

     }   

     - (void)dealloc {     

      [scrollView release];      

      [slideImages release];      

      [super dealloc]; 

    }  

    @end 

  • 相关阅读:
    让数据更精准,神器标配:热图
    运维监控大数据的提取与分析
    IT运营新世界大会:广通软件开启双态运维大时代
    持续交付的Mesos与Docker导入篇
    运算符
    Django 模型层(2)
    Django模型层
    Django的模板层
    Django的视图层
    Django的路由层(URLconf)
  • 原文地址:https://www.cnblogs.com/hopeanCom/p/2781876.html
Copyright © 2020-2023  润新知