当前位置:  编程技术>移动开发
本页文章导读:
    ▪navigationbar增多背景图片,适配4.3和5.0        navigationbar增加背景图片,适配4.3和5.0 在5.0上有一个很方便的函数,但是在4.3上不能用。 下面这段代码对于4.3和5.0版本都可以。 先重写UINavigationBar的drawRect函数: @implementation UINavigationBar (.........
    ▪ Mac上MonoDevelop中文乱码解决办法        Mac下MonoDevelop中文乱码解决方法猴子原创,欢迎转载。转载请注明: 转载自Cocos2D开发网--Cocos2Dev.com,谢谢!原文地址: http://www.cocos2dev.com/?p=312今天在家里的电脑,MonoDevelop编辑器中文乱码,.........
    ▪ ioctl中的cmd跟_IO() , _IOR() , IOW() ,IOWR() 以及_IOC_NR()的关系       ioctl中的cmd和_IO() , _IOR() , IOW() ,_IOWR() 以及_IOC_NR()的关系以下部分内容来自互联网 在驱动程序里, ioctl() 函数传送的变量 cmd 是应用程序用于区别设备驱动程序请求处理内容的值。cmd除了可区.........

[1]navigationbar增多背景图片,适配4.3和5.0
    来源: 互联网  发布时间: 2014-02-18
navigationbar增加背景图片,适配4.3和5.0

在5.0上有一个很方便的函数,但是在4.3上不能用。

下面这段代码对于4.3和5.0版本都可以。

先重写UINavigationBar的drawRect函数:

@implementation UINavigationBar (CustomImage)

- (void)drawRect:(CGRect)rect {

UIImage *image = [UIImage imageNamed: @"nav_back.png"];

[image drawInRect:CGRectMake(0, 0, 320, 44)];

}

@end

然后在实现代码中使用:

-(void)addNavigationBarBackgroundImage{

    if ([[UINavigationBarclass] respondsToSelector:@selector(appearance)]) {//如果是5.0以上版本

        [self.navigationController.navigationBarsetBackgroundImage:[UIImageimageNamed:@"FirstTop_NavigationBar_Background.png"]

                                                      forBarMetrics:UIBarMetricsDefault];

    }

    self.title = @"主页";

}


    
[2] Mac上MonoDevelop中文乱码解决办法
    来源: 互联网  发布时间: 2014-02-18
Mac下MonoDevelop中文乱码解决方法

猴子原创,欢迎转载。转载请注明: 转载自Cocos2D开发网--Cocos2Dev.com,谢谢!

原文地址: http://www.cocos2dev.com/?p=312

今天在家里的电脑,MonoDevelop编辑器中文乱码,本想着应该是偏好设置的字体没有设置成中文字体。修改Preferences的font之后,发现还是有乱码问题。

找了下原因,最终解决方法是:

1、在应用程序下找到Unity/MonoDevelop.app,右键显示包内容。找到/Contents/Frameworks/Mono.framework/Versions/2.10.2/etc/gtk-2.0  目录下的gtkrc文件。

用TextWrangler打开(其他文本编辑器也可以),


找到 font = "Lucida Grande 14"


在下面一行新添加   font_name = "Hei 14" ,保存。



2、启动 MonoDevelop ,打开 Preferences,修改成下面的设置:








    
[3] ioctl中的cmd跟_IO() , _IOR() , IOW() ,IOWR() 以及_IOC_NR()的关系
    来源: 互联网  发布时间: 2014-02-18
ioctl中的cmd和_IO() , _IOR() , IOW() ,_IOWR() 以及_IOC_NR()的关系

以下部分内容来自互联网

在驱动程序里, ioctl() 函数传送的变量 cmd 是应用程序用于区别设备驱动程序请求处理内容的值。cmd除了可区别数字外,还包含有助于处理的几种相应信息。

ioctl()的cmd可以通过使用宏_IO()得到,那么cmd到底是怎么组成的呢?

cmd的大小为 32位,共分 4 个域:

bit31~bit30 2位为 “区别读写” 区,作用是区分是读取命令还是写入命令。
bit29~bit15 14位为 "数据大小" 区,表示 ioctl() 中的 arg 变量传送的内存大小。
bit20~bit08  8位为 “魔数"(也称为"幻数")区,这个值用以与其它设备驱动程序的 ioctl 命令进行区别。
bit07~bit00   8位为 "区别序号" 区,是区分命令的命令顺序序号。
像命令码中的 “区分读写区” 里的值可能是 _IOC_NONE (0值)表示无数据传输,_IOC_READ (读), _IOC_WRITE (写) , _IOC_READ|_IOC_WRITE (双向)。
内核定义了 _IO() , _IOR() , IOW() 和 _IOWR() 这 4 个宏来辅助生成上面的 cmd 。下面分析 _IO() 的实现,其它的类似。
在 asm-generic/ioctl.h 里可以看到 _IO() 的定义:
#define _IO(type,nr)        _IOC(_IOC_NONE,(type),(nr),0)
再看 _IOC() 的定义:
#define _IOC(dir,type,nr,size) \
    (((dir)  << _IOC_DIRSHIFT) | \
     ((type) << _IOC_TYPESHIFT) | \
     ((nr)   << _IOC_NRSHIFT) | \
     ((size) << _IOC_SIZESHIFT))
可见,_IO() 的最后结果由 _IOC() 中的 4 个参数移位组合而成。
再看 _IOC_DIRSHIT 的定义:
#define _IOC_DIRSHIFT    (_IOC_SIZESHIFT+_IOC_SIZEBITS)
_IOC_SIZESHIFT 的定义:
#define _IOC_SIZESHIFT    (_IOC_TYPESHIFT+_IOC_TYPEBITS)
_IOC_TYPESHIF 的定义:
#define _IOC_TYPESHIFT    (_IOC_NRSHIFT+_IOC_NRBITS)
_IOC_NRSHIFT 的定义:
#define _IOC_NRSHIFT    0
_IOC_NRBITS 的定义:
#define _IOC_NRBITS    8
_IOC_TYPEBITS 的定义:
#define _IOC_TYPEBITS    8
由上面的定义,往上推得到:
_IOC_TYPESHIFT = 8
_IOC_SIZESHIFT = 16
_IOC_DIRSHIFT = 30
所以,(dir)  << _IOC_DIRSHIFT) 表是 dir 往左移 30 位,即移到 bit31~bit30 两位上,得到方向(读写)的属性;
            (size) << _IOC_SIZESHIFT) 位左移 16 位得到“数据大小”区;
            (type) << _IOC_TYPESHIFT) 左移 8位得到"魔数区" ;
           (nr)   << _IOC_NRSHIFT)      左移 0 位( bit7~bit0) 。
这样,就得到了 _IO() 的宏值。

所以在应用程序中调用ioctl()一般是这样的:

#define I2C_IOCTL_CMD_MAKE(cmd)     ( _IO( I2C_DRV_MAGICNUM, cmd) )

cmd = I2C_IOCTL_CMD_MAKE(I2C_CMD_WRITE);
status = ioctl(hndl->fd, cmd, &prm);

在对应的驱动程序中在switch对cmd做出分类时有这样的调用:

#define I2C_IOCTL_CMD_GET(cmd)      ( _IOC_NR(cmd) )
#define I2C_IOCTL_CMD_IS_VALID(cmd) ( (_IOC_TYPE(cmd) == I2C_DRV_MAGICNUM ) ? 1 : 0)

if(!I2C_IOCTL_CMD_IS_VALID(cmd))
    return -1;
cmd = I2C_IOCTL_CMD_GET(cmd);
switch(cmd)
{}
那么_IOC_NR()和_IOC_TYPE()又是什么东西,从形式上看应该是_IO()的逆操作


以上几个宏的使用格式为:
_IO (魔数, 基数);
_IOR (魔数, 基数, 变量型)
_IOW  (魔数, 基数, 变量型)
_IOWR (魔数, 基数,变量型 )
魔数 (magic number)
魔数范围为 0~255 。通常,用英文字符 "A" ~ "Z" 或者 "a" ~ "z" 来表示。设备驱动程序从传递进来的命令获取魔数,然后与自身处理的魔数想比较,如果相同则处理,不同则不处理。魔数是拒绝误使用的初步辅助状态。设备驱动程序可以通过 _IOC_TYPE (cmd) 来获取魔数。不同的设备驱动程序最好设置不同的魔数,但并不是要求绝对,也是可以使用其他设备驱动程序已用过的魔数。
基(序列号)数
基数用于区别各种命令。通常,从 0开始递增,相同设备驱动程序上可以重复使用该值。例如,读取和写入命令中使用了相同的基数,设备驱动程序也能分辨出来,原因在于设备驱动程序区分命令时使用 switch ,且直接使用命令变量 cmd值。创建命令的宏生成的值由多个域组合而成,所以即使是相同的基数,也会判断为不同的命令。设备驱动程序想要从命令中获取该基数,就使用下面的宏:
_IOC_NR (cmd)
通常,switch 中的 case 值使用的是命令的本身。
变量型
变量型使用 arg 变量指定传送的数据大小,但是不直接代入输入,而是代入变量或者是变量的类型,原因是在使用宏创建命令,已经包含了 sizeof() 编译命令。


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3