"DJNewFeatureViewController.m"

  1. #import "DJNewFeatureViewController.h"
  2.  
  3. #define NEW_FEATURE_NUMS 4
  4.  
  5. @interface DJNewFeatureViewController() <UIScrollViewDelegate>
  6.  
  7. @property (nonatomic,weak) UIPageControl *pageControl;
  8.  
  9. @end
  10.  
  11. @implementation DJNewFeatureViewController
  12.  
  13. - (void)viewDidLoad {
  14.  
  15. // 1.创建一个UIScrollView
  16. UIScrollView *scrollView = [[UIScrollView alloc] init];
  17. scrollView.frame = self.view.bounds;
  18. CGFloat scrollW = scrollView.width;
  19. CGFloat scrollH = scrollView.height;
  20. scrollView.delegate = self;
  21.  
  22. // 2.设置scrollview的属性
  23.  
  24. // contentSize设置内容范围,高度为0代表高度不能滑动
  25. scrollView.contentSize = CGSizeMake(scrollW * NEW_FEATURE_NUMS, );
  26. // 设置scrollView可以被分页
  27. scrollView.pagingEnabled = YES;
  28. // 去除水平滚动条
  29. scrollView.showsHorizontalScrollIndicator = NO;
  30. // 去除弹簧效果造成的黑边
  31. scrollView.bounces = NO;
  32.  
  33. // 2.添加4个UIImageView
  34. for (int i = ; i < NEW_FEATURE_NUMS; i++) {
  35. UIImageView *imageView = [[UIImageView alloc] init];
  36. imageView.size = scrollView.size;
  37. imageView.y = ;
  38. imageView.x = i * scrollW;
  39. NSString *imageName = [NSString stringWithFormat:@"new_feature_%d",i+];
  40. imageView.image = [UIImage imageNamed:imageName];
  41. [scrollView addSubview:imageView];
  42. }
  43.  
  44. [self.view addSubview:scrollView];
  45.  
  46. // 3.添加pageControl
  47. UIPageControl *pageControl = [[UIPageControl alloc] init];
  48. // 设置pageControl的个数
  49. pageControl.numberOfPages = NEW_FEATURE_NUMS;
  50. pageControl.width = ;
  51. pageControl.height = ;
  52. pageControl.centerX = scrollW * 0.5;
  53. pageControl.centerY = scrollH - ;
  54.  
  55. // 设置pageControl选中和未选中的颜色
  56. pageControl.pageIndicatorTintColor = DJColor(, , );
  57. pageControl.currentPageIndicatorTintColor = DJColor(,, );
  58.  
  59. // 禁止点击pagecontrol的小按钮
  60. pageControl.userInteractionEnabled = NO;
  61.  
  62. [self.view addSubview:pageControl];
  63. self.pageControl = pageControl;
  64.  
  65. }
  66.  
  67. - (void)scrollViewDidScroll:(UIScrollView *)scrollView {
  68.  
  69. double page = scrollView.contentOffset.x / scrollView.width;
  70. self.pageControl.currentPage = (int)(page + 0.5);
  71.  
  72. // DJLog(@"%@",NSStringFromCGPoint(scrollView.contentOffset));
  73.  
  74. }
  75.  
  76. @end

最终效果:

新浪微博客户端(9)-实现版本新特性的ViewPager的更多相关文章

  1. IOS第三天-新浪微博 - 版本新特性,OAuth授权认证

    *********版本新特性 #import "HWNewfeatureViewController.h" #import "HWTabBarViewController ...

  2. 《转》MySQL 5.7版本新特性连载

    MySQL 5.7版本新特性连载(一) 本文将和大家一起分享下5.7的新特性,不过我们要先从即将被删除的特性以及建议不再使用的特性说起.根据这些情况,我们在新版本及以后的版本中,应该不再使用,避免未来 ...

  3. 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.----------- ...

  4. 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. ---------- ...

  5. Atitit opencv版本新特性attilax总结

    Atitit opencv版本新特性attilax总结 1.1. :OpenCV 3.0 发布,史上功能最全,速度最快的版1 1.2. 应用领域2 1.3. OPENCV2.4.3改进 2.4.2就有 ...

  6. 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. ...

  7. 【开源】OSharp3.3框架解说系列:重新开源及3.3版本新特性

    OSharp是什么? OSharp是个快速开发框架,但不是一个大而全的包罗万象的框架,严格的说,OSharp中什么都没有实现.与其他大而全的框架最大的不同点,就是OSharp只做抽象封装,不做实现.依 ...

  8. Atitit 发帖机系列(8)  词法分析器v5 版本新特性说明)

    Atitit 发帖机系列(8)  词法分析器v5 版本新特性说明) v5  增加对sql单引号的内部支持.可以作为string 结构调整,使用递归法重构循环发..放弃循环发. V4 java dsl词 ...

  9. [iOS微博项目 - 1.7] - 版本新特性

    A.版本新特性 1.需求 第一次使用新版本的时候,不直接进入app,而是展示新特性界面 github: https://github.com/hellovoidworld/HVWWeibo       ...

随机推荐

  1. 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 ...

  2. 在View页面,使用@if(){ }输出判断正确的内容

    @if (true) { Html.Raw("已结束"); } 发现这段代码是正确,但是页面不输出"已结束"三个字,但是也不报错 @if (DateTime.N ...

  3. 解决方法:未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序

    win7或win8 64位调试程序,出现这样的错误提示:未在本地计算机上注册 Microsoft.Jet.OLEDB.4.0 提供程序 解决方法如下: 方法一:“设置应用程序池默认属性”/“常规”/” ...

  4. IL指令大全

    IL是.NET框架中中间语言(Intermediate Language)的缩写.使用.NET框架提供的编译器可以直接将源程序编译为.exe或.dll文件,但此时编译出来的程序代码并不是CPU能直接执 ...

  5. 自定义带图片和文字的ImageTextButton

    今天我们来讲一下有关自定义控件的问题,今天讲的这篇是从布局自定义开始的,难度不大,一看就明白,估计有的同学或者开发者看了说,这种方式多此一举,但是小编我不这么认为,多一种解决方式,就多一种举一反三的学 ...

  6. ios9+xcode7 适配笔记

    升级了xcode7,最近ios9上马,又到了草泥马的时间,apple开放团队每次系统更新,都是无数个草泥马的适配夜晚,现在ios9上线以前的app竟然启动crash,这是要闹哪样. 1.微信和微博的s ...

  7. Daily English

  8. android之文件存储和读取

    一.权限问题 手机中存储空间分为ROM和SDcard,ROM中放着操作系统以及我们安装的APP,而sdcard中一般放置着我们APP产生的数据.当然,Android也为每个APP在ROM中创建一个数据 ...

  9. C#配置文件管理

    最近在做项目的过程中用到配置文件,本文简要说明本人在项目过程中是如何使用配置文件的,目的是加深自己对配置文件管理的理解,以便在下次使用时能做到轻松自如. 配置文件,顾名思义,是用户在使用系统或者软件时 ...

  10. 第一课:js命名空间的介绍,js对象的扩展以及js数组化

    1.命名空间: js里面的命名空间就是使用对象的属性来扩展的.比如,用户定义一个A对象,A对象下面有B属性和C属性,同时B属性和C属性又是对象.因此A={B:{},C:{}},这时用户就可以在B对象和 ...