pageControl指示器和图片放大-b
小编由于篇幅问题,截取了最后一篇,如果需要看其他的三篇文章,可以去笔者的简书看: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的更多相关文章
- Android 实现九宫格、点击图片放大全屏浏览等
项目GitHub地址https://github.com/tikeyc/TNinePlaceGridView_Android https://github.com/tikeyc/TikeycAndro ...
- (JS+CSS)实现图片放大效果
代码很简单,在这里就不过多阐述,先上示例图: 实现过程: html部分代码很简单 <div id="outer"> <p>点击图片</p> &l ...
- jQuery Lightbox图片放大预览
简介:jQuery Lightbox图片放大预览代码是一款可以在用户点击页面中的小图片时,将该图片的高清版本以Lightbox的方式放大显示在页面的中间,提高用户的体验度. 效果展示 http://h ...
- 网页mp3语音展示,点击图片放大,点击图片跳转链接,调表格
查看mp3语音 <td class="value"><embed src="${sounds.soundName}" type="a ...
- jq随手写图片放大
html: <img id="img1" src="<?php echo $info->business_licence_img; ?>" ...
- 推荐两款简单好用的图片放大jquery插件
一.zoomfiy.js 推荐可以从这里下载 使用说明: 使用该jquery 插件引入该插件的js:zoomfiy.js 或 min引入该插件的css:zoomfiy.css 或 min前后顺序都可j ...
- js图片放大效果
实现购物网站里的图片放大效果,jqzoom很好用.今天才接触它,很快就上手了.看了一个示例,在放大图像上方貌似有水印,后经排查,原来是图片的标题,然后设置title为false,搞定.
- magento中如何实现产品图片放大效果
Magento列表页用jQuery实现产品图片放大效果今天看到个网站,鼠标移到列表页的产品图片上,旁边会弹出一个大图,感觉不错,就自己在Magento里写了个.先看看效果 这个效果比较好实现,打开li ...
- 41.Android之图片放大缩小学习
生活中经常会用到图片放大和缩小,今天简单学习下. 思路:1.添加一个操作图片放大和缩小类; 2. 布局文件中引用这个自定义控件; 3. 主Activity一些修改. 代码如下: 增加图片操作类: ...
随机推荐
- Web系统大规模并发----电商秒杀与抢购
原文链接请参见:http://uule.iteye.com/blog/2186786
- 轻松学习Ionic (四) 修改应用图标及添加启动画面(更新官方命令行工具自动生成)
由于Ionic更新了命令行工具,以后修改应用图标和添加启动画面就简单了,最新方法见最下方: 应用图标: 1.在整个项目所在文件夹下创建res文件夹,里边再分别创建两个文件夹android和io ...
- Jersey(1.19.1) - Extracting Request Parameters
Parameters of a resource method may be annotated with parameter-based annotations to extract informa ...
- 第四节 使用XML
可扩展标记语言XML,是一种平台无关的数据表示格式,对特定数据表示需求的数据来说,比关系型格式有一定的优势. XML文档可以是计算机上的物理文件,网络上的数据流,或者仅仅是内存中的字符串.但是,XML ...
- 网易新闻RSS阅读器
首先需要分析网易RSS订阅中心的网页布局情况. 网易RSS订阅中心:http://www.163.com/rss/ 你会发现RSS文件由一个<channel>元素及其子元素组成,除了频道本 ...
- asp.net php asp jsp 301重定向的代码
介绍一下针对各类程序系统实施301重定向的代码: 1.Linux主机重定向 Godaddy的Liunx主机,Godaddy本身已经支持Apache,所以直接创建一个.htaccess文件就可以了,一般 ...
- Linux c字符串中不可打印字符转换成16进制
本文由 www.169it.com 搜集整理 如果一个C字符串中同时包含可打印和不可打印的字符,如果想将这个字符串写入文件,同时方便打开文件查看或者在控制台中打印出来不会出现乱码,那么可以将字符串中的 ...
- popViewControllerAnimated 后,对页面内UITableView 内数据刷新
popViewControllerAnimated后,这时它不执行viewDidLoad,所以不能及时对viewControler及时刷新,此时对该页面进行操作可以调用viewWillAppear:( ...
- IOS基础 Day-1手动内存管理
辞职回家打算自学IOS开发,就在借个地方记录一下 Day-1 手动内存管理 主要内容:release retain必须配对好,不然会占用内存 慢慢积累导 ...
- jqGrid API 全
JQGrid是一个在jquery基础上做的一个表格控件,以ajax的方式和服务器端通信. JQGrid Demo 是一个在线的演示项目.在这里,可以知道jqgrid可以做什么事情. 下面是转自其他人b ...