小编由于篇幅问题,截取了最后一篇,如果需要看其他的三篇文章,可以去笔者的简书看:http://www.jianshu.com/users/9f3739421d15/latest_articles

另外这个demo的github地址是:https://github.com/zhYes/YSBiggerPageContrl

Untitled3.gif

代码部分 :

  • 添加pageControl

- (void)addPageControl {    
   CGFloat pageW = 20 * _urls.count;    
   CGFloat pageH = kPageHeight;    
   _myPageControl = [[UIPageControl alloc] initWithFrame:CGRectMake((_header.hm_width - pageW) * 0.5, _header.hm_height - pageH, pageW, pageH)];//    
   _myPageControl.backgroundColor = [UIColor redColor];    
   [_header addSubview:_myPageControl];    
   _myPageControl.pageIndicatorTintColor = [UIColor greenColor];    
   _myPageControl.currentPageIndicatorTintColor = [UIColor redColor];    
   _myPageControl.numberOfPages = _urls  .count;
  • 释义 : 常规代码.. 这里可以 设置当前选中的指示颜色以及默认颜色

  • 跟随滚动偏移

4EA86B1A-D55B-4756-B220-9DA701BEF35B.png

释义 : 随父控件_header滚动 并渐变消失即可
注意 : _header并非加到tableView的headerView上 !!

-
-

对于个性的你一定觉得小圆点点low爆了对不对 ?

完善后的效果图 二 :

Untitled1.gif

代码实现 :

QQ20160908-0.png

[_myPageControl setValue:[UIImage imageNamed:@"pageCurrent.png"] forKey:@"_currentPageImage"];    [_myPageControl setValue:[UIImage imageNamed:@"pageOther.png"] forKey:@"_pageImage"];

释义 : pageControl在iOS8.4以后有一些属性变为私有,苹果并没有暴露给我们,但是我们依然可以通过kvc来替换使用自定义的image

  • 探究证明

- (void)getUIPageControlProperties{    
   unsigned int count;    
/**      
1.获取属性列表y      
参数1:获取哪个类的      
参数2:count表示你该类里面有多少个属性      
propertyList 它就相当于一个数组      
*/    
/**      
class_copyPropertyList 这个方法只能获取类的公有属性      
class_copyIvarList 能获取类的所有属性,包括私有属性      
*/      
   Ivar *propertyList = class_copyIvarList([UIPageControl class], &count);    
   for (int i=0; i<count; i++) {        //2.取出objc_property_t数组中的property        
       Ivar property = propertyList[i];        //3.获取的是C语言的名称        
       const char *cPropertyName = ivar_getName(property);        //4.将C语言的字符串转成OC的        
       NSString * ocPropertyName = [[NSString alloc] initWithCString:cPropertyName encoding:NSUTF8StringEncoding];        //5.打印结果如下 ,我们重点关心的就是 _pageImage , _currentPageImage        
       //  我们知道了这两个名字 就可以利用KVC设置我们想要的图片!//        NSLog(@"%@",ocPropertyName);        
       /*          
       2016-09-08 10:57:36.488 轮播图two[71257:3736607] _lastUserInterfaceIdiom          
       2016-09-08 10:57:36.489 轮播图two[71257:3736607] _indicators          
       2016-09-08 10:57:36.489 轮播图two[71257:3736607] _currentPage          
       2016-09-08 10:57:36.490 轮播图two[71257:3736607] _displayedPage          
       2016-09-08 10:57:36.490 轮播图two[71257:3736607] _pageControlFlags          
       2016-09-08 10:57:36.493 轮播图two[71257:3736607] _currentPageImage          
       2016-09-08 10:57:36.494 轮播图two[71257:3736607] _pageImage          
       2016-09-08 10:57:36.494 轮播图two[71257:3736607] _currentPageImages          
       2016-09-08 10:57:36.495 轮播图two[71257:3736607] _pageImages          
       2016-09-08 10:57:36.495 轮播图two[71257:3736607] _backgroundVisualEffectView          
       2016-09-08 10:57:36.496 轮播图two[71257:3736607] _currentPageIndicatorTintColor          
       2016-09-08 10:57:36.496 轮播图two[71257:3736607] _pageIndicatorTintColor          
       2016-09-08 10:57:36.496 轮播图two[71257:3736607] _legibilitySettings          
       2016-09-08 10:57:36.497 轮播图two[71257:3736607] _numberOfPages          
       */    
   }    
   //5.C语言中,用完copy,create的东西之后,最好释放    
   free(propertyList);
}

释义 运用runtime获取Ivar全部属性,打印可得~~
我们重点关心的就是 _pageImage , _currentPageImage // 我们知道了这两个名字 就可以利用KVC设置我们想要的图片!

pageControl指示器和图片放大-b的更多相关文章

  1. Android 实现九宫格、点击图片放大全屏浏览等

    项目GitHub地址https://github.com/tikeyc/TNinePlaceGridView_Android https://github.com/tikeyc/TikeycAndro ...

  2. (JS+CSS)实现图片放大效果

    代码很简单,在这里就不过多阐述,先上示例图: 实现过程: html部分代码很简单 <div id="outer"> <p>点击图片</p> &l ...

  3. jQuery Lightbox图片放大预览

    简介:jQuery Lightbox图片放大预览代码是一款可以在用户点击页面中的小图片时,将该图片的高清版本以Lightbox的方式放大显示在页面的中间,提高用户的体验度. 效果展示 http://h ...

  4. 网页mp3语音展示,点击图片放大,点击图片跳转链接,调表格

    查看mp3语音 <td class="value"><embed src="${sounds.soundName}" type="a ...

  5. jq随手写图片放大

    html: <img id="img1" src="<?php echo $info->business_licence_img; ?>" ...

  6. 推荐两款简单好用的图片放大jquery插件

    一.zoomfiy.js 推荐可以从这里下载 使用说明: 使用该jquery 插件引入该插件的js:zoomfiy.js 或 min引入该插件的css:zoomfiy.css 或 min前后顺序都可j ...

  7. js图片放大效果

    实现购物网站里的图片放大效果,jqzoom很好用.今天才接触它,很快就上手了.看了一个示例,在放大图像上方貌似有水印,后经排查,原来是图片的标题,然后设置title为false,搞定.

  8. magento中如何实现产品图片放大效果

    Magento列表页用jQuery实现产品图片放大效果今天看到个网站,鼠标移到列表页的产品图片上,旁边会弹出一个大图,感觉不错,就自己在Magento里写了个.先看看效果 这个效果比较好实现,打开li ...

  9. 41.Android之图片放大缩小学习

    生活中经常会用到图片放大和缩小,今天简单学习下. 思路:1.添加一个操作图片放大和缩小类;  2. 布局文件中引用这个自定义控件;  3. 主Activity一些修改. 代码如下: 增加图片操作类: ...

随机推荐

  1. listagg( ) within group ( order by ) 与 wm_concat

    listagg( ) within group ( order by ) 与 wm_concat --oracle 11g 及以后适合 最好 select spbywslid,listagg(xm,' ...

  2. (转)linuxmint,ubuntu 下修改guake宽度方法

    之前在网上找到修改guake.py的方式,但是我一直没能找到guake.py的文件,弄的我纠结,后来找到这个文章,这个确实是有效果的 Ubuntu12.04上Guake在唤出的时候滚动条会消失,主要原 ...

  3. Java开发的一个简单截屏工具

    //源代码 import java.awt.*;import java.awt.datatransfer.DataFlavor;import java.awt.datatransfer.Transfe ...

  4. CF下的BackgroudWorker组件优化.

    .net compact framwork(2.0/3.5)下没有Backgroundworder组件,在网上找了一个类 经过使用发现了一些问题,主要有一个问题:在一个Dowork事件中对Report ...

  5. .NET中开源CMS目录

    提起开源cms,大家第一想到的是php的cms,因为php开源的最早,也最为用户和站长们认可,随着各大cms系统的功能的不断完善和各式各样的开源cms的出现,.net和java的高端的cms系统也逐渐 ...

  6. Android知识思维导图

    注:图片来源于网络,谢谢分享. 一.  项目目录结构: 布局控件 ListVIew控件 Widget:(窗口小部件) Activity Manager 二.  应用程序的5个模块构成: Activit ...

  7. c#学习汇总-----------------多态

    刚开通了博客园的博客,原因是我的师兄和前辈们在这里写的一些学习笔记让我受益匪浅,所以决定从今天起用这个平台来记录我的点滴学习心得.我喜欢GIS二次开发,以后应该也不会脱离于此,对于编程我积累的知识太零 ...

  8. 《大话设计模式》学习笔记0:设计模式的原则 && UML类图

    一.单一职责原则:就一个类而言,应该仅有一个引起它变化的原因. 如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力.这种耦合会导致脆弱的设计 ...

  9. JAVA_SE复习(多线程)

    线程 1.两种创建线程的方式都有自身的优点.  实现 Runnable 接口的优点:  从面向对象的设计观点看,Thread 类严格来讲是一个虚拟CPU 的封装,因此只有要改变或扩展该CPU 模型 ...

  10. linux ubuntu 思源黑体安装

    下载地址: 全部:700多M  https://github.com/adobe-fonts/source-han-sans/releases/tag/1.001R 可选部分Github : http ...