当前位置:  编程技术>移动开发
本页文章导读:
    ▪ARM7,ARM9,cortex-m3,cortex-m4,cortex-a8的差异        ARM7,ARM9,cortex-m3,cortex-m4,cortex-a8的区别arm系列从arm11开始,以后的就命名为cortex,并且性能上大幅度提升。 从cortex开始,分为三个系列,a系列,r系列,m系列。 m系列与arm7相似,不能跑操作.........
    ▪ XCode4.2-应用复杂的触摸和手势UIXXGestureRecognizer        XCode4.2-使用复杂的触摸和手势UIXXGestureRecognizer 使用复杂的触摸和手势 Apple有各种手势识别器的Class,下面,将使用几个手势识别器,实现:轻按、轻扫、张合、旋转(摇动暂不涉及)。每个.........
    ▪ UILabel 依据文字长度自动调整       UILabel 根据文字长度自动调整 -(void)autoSetLabWidthForLab:(UILabel *)lab {    // NSLog(@"t-> %@",lab.text);     lab.layer.masksToBounds=YES;     lab.layer.cornerRadius=11;     lab.numberOfLines=0;     lab.textAlignment=UITex.........

[1]ARM7,ARM9,cortex-m3,cortex-m4,cortex-a8的差异
    来源: 互联网  发布时间: 2014-02-18
ARM7,ARM9,cortex-m3,cortex-m4,cortex-a8的区别

arm系列从arm11开始,以后的就命名为cortex,并且性能上大幅度提升。
从cortex开始,分为三个系列,a系列,r系列,m系列。


m系列与arm7相似,不能跑操作系统(只能跑ucos2),偏向于控制方面,说白了就是一个高级的单片机。
a系列主要应用在人机互动要求较高的场合,比如pda,手机,平板电脑等。a系列类似于cpu,与arm9和arm11相对应,都是可以跑草错系统的。linux等。
r系列,是实时控制。主要应用在对实时性要求高的场合。

arm7和m3,m4是同一类型。这三个里面,arm7是最早的arm产品。m3是cortex m系列的过渡品,其低端市场被cortex m0的高端替代,                                                               其高端市场又被cortex m4的低端取代。现在m系列,是m4内核的。典型的芯片是st公司和飞思卡尔公司的。


arm9 和cortex a8 是一个类型的,都是跑操作系统的,现在的高端手机,三星,htc等智能手机,就是用的cortex a8,cortex a9 内核的芯片作为cpu。

(1)ARM7,ARM9属于v4T或v5E架构
(2)ARM11属于v6架构
(3)Contex属于v7架构
ARM7,ARM9的区别在于是否有MMU(存储器管理单元)或MPU(存储器保护单元)
架构上v5E相比v4T则是在于v5E新加入的增强型DSP(数字信号处理)指令,v4T则是Thumb指令集的加入,v6架构则是开始支持SIMD以及Thumb2的问世

    
[2] XCode4.2-应用复杂的触摸和手势UIXXGestureRecognizer
    来源: 互联网  发布时间: 2014-02-18
XCode4.2-使用复杂的触摸和手势UIXXGestureRecognizer

使用复杂的触摸和手势

Apple有各种手势识别器的Class,下面,将使用几个手势识别器,实现:轻按、轻扫、张合、旋转(摇动暂不涉及)。每个手势都将有一个弹出式窗口的反馈。


在ViewController.m文件中,

1-点击事件

-(void)foundTap:(UITapGestureRecognizer *)recognizer{

  UIAlertView* alert=[[UIAlertView alloc] initWithTitle:@"Hello" message:@"tapped" delegate:nil cancelButtonTitle:@"OK"otherButtonTitles:nil];
    [alert show];

}


- (void)viewDidLoad

{

    [super viewDidLoad];


    UITapGestureRecognizer *tapRecognizer;  //创建一个轻按手势识别器

tapRecognizer=[[UITapGestureRecognizer alloc]initWithTarget:self 

                                                         action:@selector(foundTap:)];

                                    //初始化识别器,并使用函数指针(方法指针)触发同时实现方法

    tapRecognizer.numberOfTapsRequired=1;  //轻按对象次数(1)触发此行为

    tapRecognizer.numberOfTouchesRequired=1; //要求响应的手指数

    [self.view addGestureRecognizer:tapRecognizer];  //相应的对象添加控制器

}


仔细观察实现的方法,均是按着以下步骤:新建一个控制器实例--实例初始化--将其添加到类对象--实现函数指针中的方法(@selector()).

【若想获得轻按或轻扫手势坐标,可添加:

CGPoint location=[recognizer locationInView:<the view> 

<the view>即为手势识别器的视图名;location有两个参数x和y】


2-轻扫:

接下来,我们按着上述步骤实现轻扫:

函数指针指向的方法:

-(void)foundSwipe:(UISwipeGestureRecognizer *)recognizer{

     UIAlertView* alert=[[UIAlertView alloc] initWithTitle:@"Hello" message:@"swiped" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
    [alert show];

}


还是viewDidLoad:

UISwipeGestureRecognizer *swipeRecognizer;  //创建一个轻扫识别器

    swipeRecognizer=[[UISwipeGestureRecognizer alloc]initWithTarget:self 

                                                             action:@selector(foundSwipe:)];

                           //对象初始化 并有函数指针

    swipeRecognizer.direction=

    UISwipeGestureRecognizerDirectionRight|UISwipeGestureRecognizerDirectionLeft;  

                                                    //手势相应 向左或向右滑动

    swipeRecognizer.numberOfTouchesRequired=1;   //扫动对象次数

    [self.view addGestureRecognizer:swipeRecognizer];  //向对象添加控制器


相应扫动方向时,有四个方向可供选择:

UISwipeGestureRecognizerDirectionRight/Left/Up/Down;



3-张合:

将实现放大缩小

函数指针方法:

-(void)foundPinch:(UIPinchGestureRecognizer *)recognizer{ //注意此处的类

    NSString *message;

    double scale;

    scale=recognizer.scale;   //识别器的scale(刻度尺、尺度)

//可用scale结合openGLES的glScalef实现缩放

    message=[[NSString alloc]initWithFormat:@"缩放:Scale:%1.2f,Velocity:%1.2f",recognizer.scale,recognizer.velocity];

    UIAlertView* alert=[[UIAlertView alloc] initWithTitle:@"Hello" message:message delegate:nil cancelButtonTitle:@"OK"               otherButtonTitles:nil];
    [alert show];

}


ViewDidLoad中:

UIPinchGestureRecognizer *pinchReconizer;   //新建一个张合识别器对象

    pinchReconizer=[[UIPinchGestureRecognizer alloc]initWithTarget:self 

                                                            action:@selector(foundPinch)];

                                       //初始化对象

    [self.view addGestureRecognizer:pinchReconizer];  //添加控制器



4-旋转

首先Cocoa类使用弧度为单位,角度和弧度的转换关系:

          角度=弧度*180/Pi

函数指针指向的方法:

-(void)foundRotation:(UIRotationGestureRecognizer *)recognizer{

    NSString *message;

    double rotation;

    rotation=recognizer.rotation;  //返回一个控制器角度

//在openGLES中可使用rotation结合glRoatef实现旋转

    message=[[NSString alloc] initWithFormat:@"旋转,Radians:%1.2f,Velocity:%1.2f",

              recognizer.rotation,recognizer.velocity];

    UIAlertView* alert=[[UIAlertView alloc] initWithTitle:@"Hello" message:message delegate:nil cancelButtonTitle:@"OK"               otherButtonTitles:nil];
    [alert show];

}


viewDidLoad如下:

UIRotationGestureRecognizer *rotationRecognizer;    //新建旋转手势控制器对象

    rotationRecognizer=[[UIRotationGestureRecognizer alloc]initWithTarget:self 

                                                    action:@selector(foundRotation:)];

                                                    //初始化对象

    [self.view addGestureRecognizer:rotationRecognizer]; //添加控制器


参考:http://blog.csdn.net/limaning/article/details/7385287


    
[3] UILabel 依据文字长度自动调整
    来源: 互联网  发布时间: 2014-02-18
UILabel 根据文字长度自动调整

-(void)autoSetLabWidthForLab:(UILabel *)lab
{
   // NSLog(@"t-> %@",lab.text);
    lab.layer.masksToBounds=YES;
    lab.layer.cornerRadius=11;
    lab.numberOfLines=0;
    lab.textAlignment=UITextAlignmentCenter;
    lab.font=[UIFont fontWithName:@"Arial" size:14.0];
    lab.textColor=[UIColor whiteColor];
    UIFont *font = [UIFont fontWithName:@"Arial" size:14.0];
    CGSize size = CGSizeMake(400,30);
    CGSize labelsize = [lab.text sizeWithFont:font constrainedToSize:size lineBreakMode:NSLineBreakByWordWrapping];
    CGRect r=lab.frame;
    if (labelsize.width<16) {
        r.size.width=2*labelsize.width+10;
    }else{
        r.size.width=labelsize.width+10;
    }
    [lab setFrame:r];
}




    
最新技术文章:
▪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