ScrollView图片分页显示-简单

用到的控件:

1>UIScrollView:宽度和图片的宽度一样,因为分页的代码就一句

// 设置分页,这个分页的原理实际上是按照ScrollView的宽进行分页的,这里的图片的宽由于和ScrollView的宽式一样的所以刚好分页显示图片了

_scrollView.pagingEnabled
= YES;

2>UIImageView:用来放图片的

3>UIPageControl,页码显示控件

=======================

关键部分:监听ScrollView的滚动,来告诉页码显;监听的方法:

scrollViewDidScroll  // 实现协议里的监听滚动的方法,这个方法是ScrollView在滚动时,会被调用

全部代码:


#import "CXBViewController.h"

#define pCount 5 // 分页显示的图片张数,或者是页数

@interface CXBViewController () <UIScrollViewDelegate>
{
UIPageControl *_pageControl;
}

@end

@implementation CXBViewController

- (void)viewDidLoad
{
[super viewDidLoad];

// 为scrollView添加图片
// 设置图片的宽和高
CGFloat w = self.view.frame.size.width;
CGFloat h = self.scrollView.bounds.size.height;
for (int i = 0; i < pCount; i++) {
UIImageView *imageView = [[UIImageView alloc] init];
// 定义图片名,通过循环把所有的图片添加到scrollView中
NSString *imageName = [NSString stringWithFormat:@"img_%02d", i + 1 ];
imageView.frame = CGRectMake(i*w, 0, w, h);
imageView.image = [UIImage imageNamed:imageName];
[self.scrollView addSubview:imageView];
}

// contentSize的y值为0表示在垂直方向上不做滚动
self.scrollView.contentSize = CGSizeMake(pCount * w, 0);
// 禁用滚动条,只设置水平方向的滚动条即可,竖直方向的滚动范围是0,所以没必要设置
self.scrollView.showsHorizontalScrollIndicator = NO;

// 设置分页,这个分页的原理实际上是按照ScrollView的大小分页的,这里的图片的宽由于和ScrollView的宽式一样的所以刚好分页显示图片了
_scrollView.pagingEnabled = YES;

// 添加分页表示符
UIPageControl *pageControl = [[UIPageControl alloc] init];
// 让它居中,就设置center属性
pageControl.center = CGPointMake(w * 0.5, h - 20);
pageControl.bounds = CGRectMake(0, 0, 120, 20);
// 设置显示的点的个数
pageControl.numberOfPages = pCount;
// 禁止点击
pageControl.enabled = NO;
pageControl.pageIndicatorTintColor = [UIColor grayColor];
pageControl.currentPageIndicatorTintColor = [UIColor brownColor];
_pageControl = pageControl;
// 这里添加到view中,不能添加到ScrollView中,否则会随着滚动而消失
[self.view addSubview:pageControl];

// 监听ScrollView的滚动,来告诉页码显示
// 设置代理
_scrollView.delegate = self;
}

// 实现协议里的监听滚动的方法,这个方法是ScrollView在滚动时,会被调用
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
// 用contentOffset来计算当前的页码
int pageCount = self.scrollView.contentOffset.x/self.scrollView.bounds.size.width;
_pageControl.currentPage = pageCount;

}

@end

这个简单的图片分页适合图片较少,在10张以内的;日后的笔记中会进行优化,只用两个UIImageView来循环显示图片即可;

时间: 2024-10-13 11:00:59

ScrollView图片分页显示-简单的相关文章

UIScrollView 图片分页显示,这里用到了UIPageControl

#import "MJViewController.h" #define kCount 8  //定义宏,程序中经常使用,方便扩展 @interface MJViewController () <UIScrollViewDelegate> { UIPageControl *_pageControl; } @end @implementation MJViewController - (void)viewDidLoad { [super viewDidLoad]; CGFlo

【iOS开发-55】图片轮播案例:scrollView的分页、滚动条、利用代理控制定时器和Page Control以及多线程问题

案例: (1)用storyboard布局,这里用了三样东西. --UIScrollView就是我们准备存放滚动图片的容器. --Page Control就是控制页数的那几个小点点.可以设置有多少个点,当前点和其他点的颜色等.注意它和UIScrollView是平级的,不是它的子视图. --还有一个textView是带有滚动的,用来测试多线程的.暂且随意拖放在页面中即可. (2)在ViewController.m中 --借助之前的scrollView属性,设置滚动范围 --借助新学习的scrollV

如何对sharepoint图片库的文件夹的图片按照时间排序并分页显示

/// <summary> /// 获取图片库第一层文件夹--根据文件夹名称排序 /// </summary> /// <param name="siteUrl"></param> /// <param name="weburl"></param> /// <param name="listID"></param> /// <returns>

java web 简单的分页显示

题外话:该分页显示是用 “表示层-控制层-DAO层-数据库”的设计思想实现的,有什么需要改进的地方大家提出来,共同学习进步. 思路:首先得在 DAO 对象中提供分页查询的方法,在控制层调用该方法查到指定页的数据,在表示层通过 EL 表达式和 JSTL 将该页数据显示出来. 重点:两个方法:(1)计算总的页数. (2)查询指定页数据. 1.DAO层-数据库 JDBCUtils 类用于打开和关闭数据库,核心代码如下: 1 import java.sql.Connection; 2 import ja

简单的JSP分页显示

1.mysql的limit关键字 (DAO) select * from tablename limit startPoint, numberPerPage; tablename 就是要分页显示的那张表的名称: startPoint 就是起始的位置 -1: numberPerPage 就是一页显示的条数. 例如: select * from comment limit 20,5; 则是从comment表中抽取21~25号评论: 2.jQuery load函数 (页面JS) MySQL的limit

分页显示——(一)

1.思路介绍: 先定义一个封装分页数据的泛型工具类,控制层中通过前台传的页数与每页的数量向service要page对象,service层调用dao返回总数并调用dao取出数据(limit关键字),dao层从数据库中取出service层所需要的数据,并提交给service层.这样就达到分页的效果.数据封装在pageBean的list中 2.PageBean工具类(泛型类) package utils; /** * 分页工具类 */ import java.util.ArrayList; impor

PHP+MySQL分页显示示例分析

Web开发是今后分布式程式开发的主流,通常的web开发都要涉及到与数据库打交道,客户端从服务器端读取通常都是以分页的形式来显示,一页一页的阅读起来既方便又美观.所以说写分页程序是web开发的一个重要组成部分,在这里,我们共同来研究分页程序的编写. 一.分页程序的原理 分页程序有两个非常重要的参数:每页显示几条记录($pagesize)和当前是第几页($page).有了这两个参数就可以很方便的写出分页程序,我们以MySql数据库作为数据源,在mysql里如果要想取出表内某段特定内容可以使用的 T-

数据资料的分页显示,增删改

题目要求: 1,查找数据库资料,分页显示, 2,可以增.删.改, 3,可以按条件查找. main.php 1 <?php 2 include("./init.inc.php"); 3 4 include("../DBDA.class.php"); 5 $db = new DBDA(); 6 7 include("page.class.php"); 8 9 //$_GET["name"]; 10 //$_GET["

Spring mvc整合mybatis基于mysql数据库实现用户增删改查及其分页显示的完整入门实例【转】

Spring mvc整合mybatis例子, 基于mysql数据库实现对用户的增.删.改.查,及分页显示的完整例子. 查询显示用户 添加用户 更新用户 官方验证: 项目截图 必须修改applicationContext.xml中mysql的配置为本地的,否则启动失败. 另外jar包多一个ehcache.jar无关紧要,删除即可. 1. 使用阿里巴巴Druid连接池(高效.功能强大.可扩展性好的数据库连接池.监控数据库访问性能.支持Common-Logging.Log4j和JdkLog,监控数据库