//
// ViewController.h
// UI2_ScrollView&UIPageControl
//
// Created by zhangxueming on 15/7/10.
// Copyright (c) 2015年 zhangxueming. All rights reserved.
// #import <UIKit/UIKit.h> @interface ViewController : UIViewController <UIScrollViewDelegate> @end
//
// ViewController.m
// UI2_ScrollView&UIPageControl
//
// Created by zhangxueming on 15/7/10.
// Copyright (c) 2015年 zhangxueming. All rights reserved.
// #import "ViewController.h" #define ClipsBundleWidth ((self.view.frame.size.width-300)/2) @interface ViewController ()
{
UIScrollView *_scrollView;
UIPageControl *_pageControl;//页码
NSInteger _currentIndex;//记录当前显示的页码
}
@end @implementation ViewController - (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
_scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(ClipsBundleWidth, 64, 300, 450)];
_scrollView.contentSize = CGSizeMake(300*6, 450);
_scrollView.pagingEnabled = YES; for (int i=0; i<6; i++) {
NSString *imageName = [NSString stringWithFormat:@"%d",i];
NSString *path = [[NSBundle mainBundle] pathForResource:imageName ofType:@"png"];
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(300*i, 0, 300, 450)];
imageView.image = [UIImage imageWithContentsOfFile:path];
[_scrollView addSubview:imageView];
} _pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(ClipsBundleWidth, 64+450, 300, 30)];
_pageControl.numberOfPages = 6;
_currentIndex = 0;
_pageControl.currentPage = _currentIndex;
_pageControl.backgroundColor = [UIColor blackColor]; [self.view addSubview:_pageControl]; UIButton *backBtn = [UIButton buttonWithType:UIButtonTypeSystem];
backBtn.frame = CGRectMake(50, 64+450+30, (self.view.frame.size.width-100)/2, 30);
[backBtn setTitle:@"back" forState:UIControlStateNormal];
backBtn.titleLabel.font = [UIFont boldSystemFontOfSize:24];
[backBtn addTarget:self action:@selector(backBtnClicked) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:backBtn]; UIButton *forwardBtn = [UIButton buttonWithType:UIButtonTypeSystem];
forwardBtn.frame = CGRectMake(50+(self.view.frame.size.width-100)/2, 64+450+30, (self.view.frame.size.width-100)/2, 30);
[forwardBtn setTitle:@"forward" forState:UIControlStateNormal];
forwardBtn.titleLabel.font = [UIFont boldSystemFontOfSize:24];
[forwardBtn addTarget:self action:@selector(forwardBtnClicked) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:forwardBtn]; //代理
_scrollView.delegate = self; [self.view addSubview:_scrollView]; } - (void)backBtnClicked
{
_currentIndex--;
if (_currentIndex>=0) {
CGPoint point = CGPointMake(_currentIndex*300 , _scrollView.contentOffset.y);
[_scrollView setContentOffset:point animated:YES];
_pageControl.currentPage = _currentIndex;
}
else
{
_currentIndex = 5;
CGPoint point = CGPointMake(_currentIndex*300 , _scrollView.contentOffset.y);
[_scrollView setContentOffset:point animated:YES];
_pageControl.currentPage = _currentIndex;
}
} - (void)forwardBtnClicked
{
_currentIndex++;
if (_currentIndex<=5) {
CGPoint point = CGPointMake(_currentIndex*300, _scrollView.contentOffset.y);
[_scrollView setContentOffset:point animated:YES];
_pageControl.currentPage = _currentIndex;
}
else
{
_currentIndex = 5;
}
} - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
_currentIndex = scrollView.contentOffset.x/300;
_pageControl.currentPage = _currentIndex;
} - (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
} @end

UI2_ScrollView&UIPageControl的更多相关文章

  1. iOS-OC-基本控件之UIPageControl

    UIPageControl(页面控制器,就是桌面的那些小点点,每个点代表一个界面) 父类是 UIControl. iOS开发中常用的基本控件,主要和UIScrollView一起使用,比较常用的就是有些 ...

  2. UIScrollView,UIPageControl,UIImageView 实现图片轮播的效果

    上一篇博客介绍了如何将XCode创立的项目提交到Git版本控制,这次就直接做一个图片轮播的展示demo,刚好可以把UIScrollView.UIPageControl.UIImageView这三个控件 ...

  3. iOS开发 首次启动显示用户引导,第二次启动直接进入App,UIScrollView,UIPageControl,NSUserDefaults

    首先创建一个引导图的控制器类 UserGuideViewController.h和UserGuideViewController.m #import <UIKit/UIKit.h> #im ...

  4. UIscrollView和UIPageControl的循环滚动

    因为昨天在网上找了很久,很多只能实现向右滚动,而且一张图一个imageview ,感觉工作量很可怕啊 ,  下面的例子就是不论你多少图 , 只和我代码里面的几个数值有关,  只需要修改分页和循环i的最 ...

  5. iOS-UIScrollView和UIPageControl的综合实力,滚动图,轮播图

    本代码主要实现图片之间的切换 目录结构 代码 ViewController.m文件 #import "ViewController.h" @interface ViewContro ...

  6. iOS-设置UIPageControl 显示图片

    UIPageControl 的默认样式是几个小圆点,系统没有提供属性供我们自定义这几个小圆点的样式,不过我们依然可以使用KVC来自定义PageControl的显示样式 UIPageControl *p ...

  7. scrollView实现基础中心点缩放及与UIPageControl结合使用

    一般来说scrollView与UIPageControl都是结合使用,因为在使用滚动视图的时候 ,使用UIPageControl,用户可以 清楚 的明白显示的内容有多少页,如果 没有的话,总不能让用户 ...

  8. 自定义UIPageControl,可设置任意图片image。

    [self.pageControl setValue:[UIImage imageNamed:@"选中图片名称"] forKeyPath:@"_currentPageIm ...

  9. UIPageControl页控制器

    一.基本知识 #import "ViewController.h"@interface ViewController ()<UIScrollViewDelegate>{ ...

随机推荐

  1. 【JavaScript】 2013年度最强AngularJS资源合集

    http://www.iteye.com/news/28651-AngularJS-Google-resource AngularJS是Google开源的一款JavaScript MVC框架,弥补了H ...

  2. Citrix 服务器虚拟化之二十八 XenApp6.5发布文档内容

    Citrix 服务器虚拟化之二十八  XenApp 6.5发布文档内容 XenApp可发布以下类型的资源向用户提供信息访问,这些资源可在服务器或桌面上虚拟化: 1)  服务器桌面:发布场中服务器的整个 ...

  3. [Express] Level 3: Massaging User Data

    Flexible Routes Our current route only works when the city name argument matches exactly the propert ...

  4. UIStoryboard

    UIStoryboard 目录 概述 Storyboard的创建 Storyboard中的页面跳转 文件内跳转 文件外跳转 Segues 不同类型的视图控制器在UIStoryboard上的实现 概述 ...

  5. jqgrid 获取当前页码

    jqgrid 获取当前页码 $('#gridTable').getGridParam('page'); /** *刷新,jqGrid刷新当前列表页代码 */ function refresh(url) ...

  6. js代码的一些小技巧

    1. 数组中通过赋值语句来改变值 var a = 1; var msg = ["value0","value1"]; for(var i = 0;i<10 ...

  7. java实现迷宫算法--转

    沿着所有方向进行探测,有路径则走,没有路径则从栈中回退. 回溯法是一种不断试探且及时纠正错误的搜索方法,下面的求解过程采用回溯法.从入口出发,按某一方向向前探索,若能走通(未走过的),即某处可以到达, ...

  8. Creating a CSRF protection with Spring 3.x--reference

    reference from:http://info.michael-simons.eu/2012/01/11/creating-a-csrf-protection-with-spring-3-1/ ...

  9. ubuntu 上使用apt-get安装oracle-jdk

    Installing default JRE/JDK sudo apt-get updatesudo apt-get install default-jresudo apt-get install d ...

  10. Socket 之 c#实现Socket网络编程

    一.命名空间: 在网络环境下,最有用的两个命名空间是System.Net和 System.Net.Sockets. 1.System.Net:通常与较高程的操作有关,例如download或upload ...