纯css多级下拉菜单 可以遮住表单 支持IE6

2019-4-16 zhulinan CSS样式表

外国人写的纯css多级下拉菜单,可以遮住表单,支持IE5.5, IE6, IE7, IE8, Firefox, Safari(PC), Opera and Google Chrome ...

阅读全文>>

评论(0) 浏览(976)

二叉树知识点速记

2019-4-12 liuyingcong 其它

    

阅读全文>>

评论(0) 浏览(1046)

mysql优化篇

2019-4-12 hubo 数据库

mysql优化篇

阅读全文>>

评论(0) 浏览(815)

phpstorm常用快捷键

2019-4-12 dingshangchao

常用的phpstorm快捷键汇总

阅读全文>>

评论(0) 浏览(876)

runtime的一些其他常见用法

2019-4-12 王建伟 iOS开发

上篇我们利用runtime来实现了按键点击范围的扩大,其实runtime还有许多常见用法,比如:动态获取类名,动态获取类的成员变量,动态获取类的属性列表,动态获取类的方法列表,动态获取类所遵循的协议列表,动态添加新的方法,类的实例方法实现的交换,动态属性关联,消息发送与消息转发机制等。下面就介绍一些常见的用法

1.获取类名

动态的获取类名是比较简单的,使用class_getName(Class)就可以在运行时来获取类的名称。class_getName()函数返回的是一个char类型的指针,也就是C语言的字符串类型,所以我们要将其转换成NSString类型,然后再返回出去。下方的+fetchClassName:方法就是我们封装的获取类名的方法

2.获取成员变量

下方这个+fetchIvarList:这个方法就是我们封装的获取类的成员变量的方法。当然我们在获取成员变量时,可以用ivar_getTypeEncoding()来获取相应成员变量的类型。使用ivar_getName()来获取相应成员变量的名称。下方就是对获取成员变量的功能的封装。返回的是一个数组,数组的元素是一个字典,而字典中存储的就是相应成员变量的名称和类型。

3.获取成员属性

上面获取的是类的成员变量,那么下方这个+fetchPropertyList:获取的就是成员属性。当然此刻获取的只包括成员属性,也就是那些有setter或者getter方法的成员变量。下方主要是使用了class_copyPropertyList(Class,&count)来获取的属性列表,然后通过for循环通过property_getName()来获取每个属性的名字。当然使用property_getName()获取到的名字依然是C语言的char类型的指针,所以我们还需要将其转换成NSString类型,然后放到数组中一并返回。

4.获取类的实例方法

接下来我们就来封装一下获取类的实例方法列表的功能,下方这个+fetchMethodList:就是我们封装的获取类的实例方法列表的函数。在下方函数中,通过class_copyMethodList()方法获取类的实例方法列表,然后通过for循环使用method_getName()来获取每个方法的名称,然后将方法的名称转换成NSString类型,存储到数组中一并返回。

5.动态添加方法实现

下方就是动态的往相应类上添加方法以及实现。下方的+addMethod方法有三个参数,第一个参数是要添加方法的类,第二个参数是方法的SEL,第三个参数则是提供方法实现的SEL。稍后在消息发送和消息转发时会用到下方的方法。下方主要是使用class_getInstanceMethod()和method_getImplementation()这两个方法相结合获取相应SEL的方法实现。下方的IMP其实就是Implementation的方法缩写,获取到相应的方法实现后,然后再调用class_addMethod()方法将IMP与SEL进行绑定即可。

6.方法实现交换

下方就是讲类的两个方法的实现进行交换。如果将MethodA与MethodB的方法实现进行交换的话,调用MethodA时就会执行MethodB的内容,反之亦然。

评论(0) 浏览(1015)

9种常见中国传统纹样

2019-4-4 zhenggaoyun 视觉设计

9种常见中国传统纹样

阅读全文>>

评论(0) 浏览(4055)

Java集合框架速记

2019-4-4 liuyingcong 安卓开发

   

阅读全文>>

评论(0) 浏览(995)

从navicat中导入sql文件过大解决

2019-4-4 dingshangchao 数据库

从navicat中导入sql文件过大会报错:Got a packet bigger than 'max_allowed_packet' bytes,修改配置可以解决

阅读全文>>

评论(0) 浏览(5232)

利用runtime实现按键点击范围放大

2019-4-4 王建伟 iOS开发

在编写项目的过程中我们一般都会遇到这样的情况,按键设计的比较小,用户不方便点击,造成体验很差这种状况,我们就需要在不改变按键UI的情况下实现按键点击范围放大

这时候我们就需要用的runtime机制,在程序运行和编译的时候做一个小动作,改变一下按键的点击范围

首先我们先建立一个button的分类来扩充一下按键的方法

设定一些静态的常量

static char topNameKey

static char rightNameKey

static char bottomNameKey

static char leftNameKey

然后编写扩大范围的方法

返回一个扩大的范围

改写按键点击事件,让点击范围变大

评论(0) 浏览(932)

mysql规范

2019-4-3 hubo 数据库

mysql规范

阅读全文>>

评论(0) 浏览(843)

网站备案号:京ICP备11043289号-1 北京市公安局网络备案 海1101084571
版权所有 北京育灵童科技发展有限公司 Copyright © 2002-2024 www.elight.cn, All Rights Reserved