新浪微博客户端(9)-实现版本新特性的ViewPager
"DJNewFeatureViewController.m"
#import "DJNewFeatureViewController.h"
#define NEW_FEATURE_NUMS 4
@interface DJNewFeatureViewController() <UIScrollViewDelegate>
@property (nonatomic,weak) UIPageControl *pageControl;
@end
@implementation DJNewFeatureViewController
- (void)viewDidLoad {
// 1.创建一个UIScrollView
UIScrollView *scrollView = [[UIScrollView alloc] init];
scrollView.frame = self.view.bounds;
CGFloat scrollW = scrollView.width;
CGFloat scrollH = scrollView.height;
scrollView.delegate = self;
// 2.设置scrollview的属性
// contentSize设置内容范围,高度为0代表高度不能滑动
scrollView.contentSize = CGSizeMake(scrollW * NEW_FEATURE_NUMS, );
// 设置scrollView可以被分页
scrollView.pagingEnabled = YES;
// 去除水平滚动条
scrollView.showsHorizontalScrollIndicator = NO;
// 去除弹簧效果造成的黑边
scrollView.bounces = NO;
// 2.添加4个UIImageView
for (int i = ; i < NEW_FEATURE_NUMS; i++) {
UIImageView *imageView = [[UIImageView alloc] init];
imageView.size = scrollView.size;
imageView.y = ;
imageView.x = i * scrollW;
NSString *imageName = [NSString stringWithFormat:@"new_feature_%d",i+];
imageView.image = [UIImage imageNamed:imageName];
[scrollView addSubview:imageView];
}
[self.view addSubview:scrollView];
// 3.添加pageControl
UIPageControl *pageControl = [[UIPageControl alloc] init];
// 设置pageControl的个数
pageControl.numberOfPages = NEW_FEATURE_NUMS;
pageControl.width = ;
pageControl.height = ;
pageControl.centerX = scrollW * 0.5;
pageControl.centerY = scrollH - ;
// 设置pageControl选中和未选中的颜色
pageControl.pageIndicatorTintColor = DJColor(, , );
pageControl.currentPageIndicatorTintColor = DJColor(,, );
// 禁止点击pagecontrol的小按钮
pageControl.userInteractionEnabled = NO;
[self.view addSubview:pageControl];
self.pageControl = pageControl;
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
double page = scrollView.contentOffset.x / scrollView.width;
self.pageControl.currentPage = (int)(page + 0.5);
// DJLog(@"%@",NSStringFromCGPoint(scrollView.contentOffset));
}
@end
最终效果:

新浪微博客户端(9)-实现版本新特性的ViewPager的更多相关文章
- IOS第三天-新浪微博 - 版本新特性,OAuth授权认证
*********版本新特性 #import "HWNewfeatureViewController.h" #import "HWTabBarViewController ...
- 《转》MySQL 5.7版本新特性连载
MySQL 5.7版本新特性连载(一) 本文将和大家一起分享下5.7的新特性,不过我们要先从即将被删除的特性以及建议不再使用的特性说起.根据这些情况,我们在新版本及以后的版本中,应该不再使用,避免未来 ...
- Atitit.c# .net 3.5 4.0 4.5 5.0 6.0各个版本新特性战略规划总结
Atitit.c# .net 3.5 4.0 各个版本新特性战略规划总结 1. --------------.Net Framework版本同CLR版本的关系1 2. paip.----------- ...
- c# .net 3.5 4.0 4.5 5.0 6.0各个版本新特性战略规划总结【转载】
引用:http://blog.csdn.net/attilax/article/details/42014327 c# .net 3.5 4.0 各个版本新特性战略规划总结 1. ---------- ...
- Atitit opencv版本新特性attilax总结
Atitit opencv版本新特性attilax总结 1.1. :OpenCV 3.0 发布,史上功能最全,速度最快的版1 1.2. 应用领域2 1.3. OPENCV2.4.3改进 2.4.2就有 ...
- Atitit mac os 版本 新特性 attilax大总结
Atitit mac os 版本 新特性 attilax大总结 1. Macos概述1 2. 早期2 2.1. Macintosh OS (系统 1.0) 1984年2 2.2. Mac OS 7. ...
- 【开源】OSharp3.3框架解说系列:重新开源及3.3版本新特性
OSharp是什么? OSharp是个快速开发框架,但不是一个大而全的包罗万象的框架,严格的说,OSharp中什么都没有实现.与其他大而全的框架最大的不同点,就是OSharp只做抽象封装,不做实现.依 ...
- Atitit 发帖机系列(8) 词法分析器v5 版本新特性说明)
Atitit 发帖机系列(8) 词法分析器v5 版本新特性说明) v5 增加对sql单引号的内部支持.可以作为string 结构调整,使用递归法重构循环发..放弃循环发. V4 java dsl词 ...
- [iOS微博项目 - 1.7] - 版本新特性
A.版本新特性 1.需求 第一次使用新版本的时候,不直接进入app,而是展示新特性界面 github: https://github.com/hellovoidworld/HVWWeibo ...
随机推荐
- JS闭包的理解
闭包的两个特点: 1.作为一个函数变量的一个引用 - 当函数返回时,其处于激活状态.2.一个闭包就是当一个函数返回时,一个没有释放资源的栈区. 其实上面两点可以合成一点,就是闭包函数返回时,该函数内部 ...
- 创建Spring容器
对于使用Spring的web应用,无须手动创建Spring容器,而是通过配置文件,声明式的创建Spring容器.在Web应用中,创建Spring容器有如下两种方式:1.直接在web.xml文件中配置: ...
- 关于app的清除缓存的功能
一直寻寻觅觅找app的清除缓存的方法,发现:并没有什么固定的方法,你既然有做对应的缓存机制,这个机制就应该有清除缓存的方法.例如如果你使用某个第三方的图片库,这个库有缓存机制,那么它就应该提供对应的清 ...
- Opencv step by step - 图像载入
之前已经使用过图像载入了,这里再讲述一下其他的一些tip. 先来一次普通的载入: #include <cv.h> #include <highgui.h> int main(i ...
- memset的使用
今天写程序的时候用了memset这个函数,我知道他是关于清空指针的,设置为0.但我用的时候,没有注意到他是以字节为单位进行操作的,改了半天其他程序内容.要注意的是,memset是对字字进行操作,所以以 ...
- scrollview中套listView的问题,记录一下。
开发一个订单详情界面,详情界面上面要显示收货地址.订单总金额等,中间部分要一个listView,下面还有一些东西 但是一个界面显示不全,肯定要scrollview,然后发现listView竟然只显示第 ...
- SequoiaDB 系列之三 :SequoiaDB的高级功能
上一篇简单描述了一下SequoiaDB的简单CRUD操作,本篇将讲述一下稍微高级点的功能. 部署在我机器上的集群环境,在经过创建名字为"foo"的cs,创建名字为"bar ...
- LINQ浅析
在C# 3.0之前,我们对不同的数据源(数据集合.SQL 数据库.XML 文档等等)进行操作(查询.筛选.投影等等),会使用不同的操作方式. C# 3.0中提出了LINQ(Language Integ ...
- 理解C#泛型
在C# 2.0中引入了泛型,泛型的出现解决了编码中的很多问题.相信大家一定经常用到"System.Collections.Generic"命名空间中的泛型集合类("Gen ...
- JavaScript事件---事件对象
发文不易,若转载传播,请亲注明出处,谢谢! 内容提纲: 1.事件对象 2.鼠标事件 3.键盘事件 4.W3C与IE JavaScript事件的一个重要方面是它们拥有一些相对一致的特点,可以给你的开 ...