新浪微博客户端(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 ...
随机推荐
- LeetCode:Best Time to Buy and Sell Stock I II III
LeetCode:Best Time to Buy and Sell Stock Say you have an array for which the ith element is the pric ...
- 在View页面,使用@if(){ }输出判断正确的内容
@if (true) { Html.Raw("已结束"); } 发现这段代码是正确,但是页面不输出"已结束"三个字,但是也不报错 @if (DateTime.N ...
- 解决方法:未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序
win7或win8 64位调试程序,出现这样的错误提示:未在本地计算机上注册 Microsoft.Jet.OLEDB.4.0 提供程序 解决方法如下: 方法一:“设置应用程序池默认属性”/“常规”/” ...
- IL指令大全
IL是.NET框架中中间语言(Intermediate Language)的缩写.使用.NET框架提供的编译器可以直接将源程序编译为.exe或.dll文件,但此时编译出来的程序代码并不是CPU能直接执 ...
- 自定义带图片和文字的ImageTextButton
今天我们来讲一下有关自定义控件的问题,今天讲的这篇是从布局自定义开始的,难度不大,一看就明白,估计有的同学或者开发者看了说,这种方式多此一举,但是小编我不这么认为,多一种解决方式,就多一种举一反三的学 ...
- ios9+xcode7 适配笔记
升级了xcode7,最近ios9上马,又到了草泥马的时间,apple开放团队每次系统更新,都是无数个草泥马的适配夜晚,现在ios9上线以前的app竟然启动crash,这是要闹哪样. 1.微信和微博的s ...
- Daily English
- android之文件存储和读取
一.权限问题 手机中存储空间分为ROM和SDcard,ROM中放着操作系统以及我们安装的APP,而sdcard中一般放置着我们APP产生的数据.当然,Android也为每个APP在ROM中创建一个数据 ...
- C#配置文件管理
最近在做项目的过程中用到配置文件,本文简要说明本人在项目过程中是如何使用配置文件的,目的是加深自己对配置文件管理的理解,以便在下次使用时能做到轻松自如. 配置文件,顾名思义,是用户在使用系统或者软件时 ...
- 第一课:js命名空间的介绍,js对象的扩展以及js数组化
1.命名空间: js里面的命名空间就是使用对象的属性来扩展的.比如,用户定义一个A对象,A对象下面有B属性和C属性,同时B属性和C属性又是对象.因此A={B:{},C:{}},这时用户就可以在B对象和 ...