iOS UIPageControl简单实例

iOS UIPageControl简单范例

关于自动 滚动代码 有待补充

实例中的图片自行添加

.h 文件代码

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController<UIScrollViewDelegate>

{
    UIScrollView *_scrollView;
    NSMutableArray *slideImages;
    UIPageControl *_page;
}
@end

.m 文件代码

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad{

    [super viewDidLoad];

    _scrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 20, 320, 240)];
    _scrollView.bounces = NO;
    _scrollView.pagingEnabled = YES;
    _scrollView.delegate = self;
    _scrollView.contentOffset = CGPointMake(320, 0);
    _scrollView.contentSize = CGSizeMake(1920,240);
    _scrollView.showsVerticalScrollIndicator =NO;
    _scrollView.showsHorizontalScrollIndicator = NO;
    _scrollView.userInteractionEnabled = YES;
    [self.view addSubview:_scrollView];

    slideImages = [[NSMutableArray alloc]initWithObjects:@"1.png",@"2.png",@"3.png",@"4.png", nil];
    UIImageView *imageView = [[UIImageView alloc]
                              initWithImage:[UIImage imageNamed:[slideImages objectAtIndex:([slideImages count]-1)]]];
    imageView.frame = CGRectMake(0, 0, 320, 240);
    [_scrollView addSubview:imageView];

    for (int i = 0;i<[slideImages count];i++) {
        //loop this bit
        UIImageView *imageView = [[UIImageView alloc]
                                  initWithImage:[UIImage imageNamed:[slideImages objectAtIndex:i]]];
        imageView.frame = CGRectMake(320*i+320, 0, 320, 240);
        imageView.userInteractionEnabled = YES;
        [_scrollView addSubview:imageView];
    }
    imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[slideImages objectAtIndex:0]]];
    imageView.frame = CGRectMake(320*5, 0, 320, 240);
    [_scrollView addSubview:imageView];
    _page = [[UIPageControl alloc]initWithFrame:CGRectMake(240, 230, 70, 30)];
    _page.numberOfPages = 4;
    _page.currentPage = 0;
    //    _page.backgroundColor = [UIColor grayColor];
    [_page addTarget:self action:@selector(pageAction) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:_page];
    // Do any additional setup after loading the view.

}

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
    int currentPage = (_scrollView.contentOffset.x - _scrollView.frame.size.width
                       / ([slideImages count]+2)) / _scrollView.frame.size.width + 1;
    NSLog(@"%d",currentPage);
    if (currentPage==0) {
        [_scrollView scrollRectToVisible:CGRectMake(320*4, 0, 320, 240) animated:NO];
    }
    else if (currentPage==([slideImages count]+1)) {
        //如果是最后+1,也就是要开始循环的第一个
        [_scrollView scrollRectToVisible:CGRectMake(320, 0, 320, 240) animated:NO];
    }
}

- (void)scrollViewDidScroll:(UIScrollView *)sender{
    int page = _scrollView.contentOffset.x/320-1;
    _page.currentPage = page;
}

-(void)pageAction{
    int page = _page.currentPage;
    [_scrollView setContentOffset:CGPointMake(320 * (page+1), 0)];
}
- (void)didReceiveMemoryWarning{
    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}
@end
时间: 2024-08-13 19:47:33

iOS UIPageControl简单实例的相关文章

iOS:Swift界面实例1, 简单界面

Apple推出了基于Objective-C的新语言Swift. 通过实例, 我们可以很好的感受这门新语言 注意事项: 在XCode6_Beta中, 如果有中文, IDE的自动补全功能就会失效, 所以开始调试的时候可以先用英文, 后面再用中文替代. 1. 新建iOS -> Single View Application. 2. 修改AppDelegate.swift文件 1 // 2 // AppDelegate.swift 3 // UIByCode_Swift_1_HelloWorld 4 /

【MySQL】存储过程、游标、循环简单实例

有时候仅凭 sql 语句可能达不到想要的数据操作目的,有可能需要写一些方法体,通过循环判断等操作最终达到目的.那么在数据库里实现这种方法体就需要存储过程了,个人觉得一个带注释的简单实例可以简单粗暴地解决大部分问题,当然要深入学习了解的话还是要看教程文档了,话不多说,上码: [sql] view plain copy create procedure my_procedure() -- 创建存储过程 begin -- 开始存储过程 declare my_id varchar(32); -- 自定义

session 对象的简单实例

一个session对象的简单实例: 1.登录界面:使用简单的html表单提交界面. <%@ page language="java" contentType="text/html; charset=GB18030"    pageEncoding="GB18030"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "ht

javamail发送邮件的简单实例(转)

javamail发送邮件的简单实例 今天学习了一下JavaMail,javamail发送邮件确实是一个比较麻烦的问题.为了以后使用方便,自己写了段代码,打成jar包,以方便以后使用.呵呵 以下三段代码是我的全部代码,朋友们如果想用,直接复制即可. 第一个类:MailSenderInfo.java package com.util.mail;    /**    * 发送邮件需要使用的基本信息  *author by wangfun http://www.5a520.cn 小说520   */  

AJAX学习整理二之简单实例

做了几个简单的实例,加载txt文本内容.加载xml文件内容,把xml文本内容转换成html表格显示.废话不多说,直接贴代码: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/html"> <head>     <title>通过ajax获取文本内容</title>     <meta charset="utf-8">     <scr

Spring+Struts 2 简单实例报空指针异常

空指针出现于Action注入位置..如果一般错误请检查配置文件. 我出的错误.在于拷贝了之前做的实例中的lib文件夹到这个工程中. 其中有个包为struts2-convention-plugin-2.3.16.3.jar 造成了包识别异常.出现空指针.有类似经历的可以查看,也给大家提个醒.不要一气呵成的导入所有包.容易出现混乱.也不利于大家清楚的认识包和代码的联系. Spring+Struts 2 简单实例报空指针异常,布布扣,bubuko.com

mvc area区域和异步表单,bootstrap简单实例

码农最怕眼高手低 今天来练习mvc Area技术和bootstrap以及异步表单的C#代码实现. 1.area区域架构对于建立复杂业务逻辑很有帮助,由  AreaRegistration.RegisterAllAreas()方法遍历路由表,获得所有注册的路由.参见 建立类库Common,下设一个文件夹BookStore 在其中建立model和controller.(注意引用System.Web.Mvc这个dll) 项目结构如图: 其中book.cs为model模型 namespace Commo

DataGridView重绘painting简单实例

private void dataGridViewX1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e) { if (e.RowIndex >= 0 && e.ColumnIndex>=0) { Rectangle newRect = new Rectangle(e.CellBounds.X, e.CellBounds.Y, e.CellBounds.Width - 1, e.CellBounds.

jQuery Datatable 实用简单实例

目标: 使用jQuery Datatable构造数据列表,并且增加或者隐藏相应的列,已达到数据显示要求.同时,jQuery Datatable强大的功能支持:排序,分页,搜索等. Query Datatable能良好支持数据完全加载到本地后构建数据列表,排序.分页.搜索等功能就会自带,不需要我们去关心,在此主要说明通过后台动态的加载数据,已达到在大数据面前提高效率的效果. 1. 通过后台进行分页 2. 通过后台进行排序 3. 通过后台进行搜索 具体使用方法: 1. 首先构建我们需要的数据列表,以