当前位置:  编程技术>移动开发
本页文章导读:
    ▪键盘的相干设置(UITextfield)        键盘的相关设置(UITextfield) 键盘样式风格有关设置: 原文章:http://www.linuxidc.com/Linux/2012-02/55374.htm 一、键盘风格    UIKit框架支持8种风格键盘。 typedef enum {       UIKeyboardTypeDefault,   .........
    ▪ 用AlarmManager回设置作业-定时运行        用AlarmManager来设置作业-定时运行 安排作业:       long repeatTime=24*60*60*1000;        /* 将更换桌布的排程叵丈AlarmManager中 */        Intent intent = new Intent(EX06_13.this,MyReceiver.class);     .........
    ▪ 视图之UINavigationController构造解析(侧重于文档分析)       视图之UINavigationController结构解析(侧重于文档分析) UINavigationController是IOS编程中比较常用的一种容器view controller,很多系统的控件(如UIImagePickerViewController)以及很多有名的APP中(如qq,系.........

[1]键盘的相干设置(UITextfield)
    来源: 互联网  发布时间: 2014-02-18
键盘的相关设置(UITextfield)
键盘样式风格有关设置:
原文章:http://www.linuxidc.com/Linux/2012-02/55374.htm

一、键盘风格   

UIKit框架支持8种风格键盘。

  • typedef enum {  
  •     UIKeyboardTypeDefault,                // 默认键盘:支持所有字符   
  •     UIKeyboardTypeASCIICapable,           // 支持ASCII的默认键盘   
  •     UIKeyboardTypeNumbersAndPunctuation,  // 标准电话键盘,支持+*#等符号   
  •     UIKeyboardTypeURL,                    // URL键盘,有.com按钮;只支持URL字符   
  •     UIKeyboardTypeNumberPad,              //数字键盘   
  •     UIKeyboardTypePhonePad,               // 电话键盘   
  •     UIKeyboardTypeNamePhonePad,           // 电话键盘,也支持输入人名字   
  •     UIKeyboardTypeEmailAddress,           // 用于输入电子邮件地址的键盘   
  • } UIKeyboardType;  
  • 用法用例:

    textView.keyboardtype = UIKeyboardTypeNumberPad;

    二、键盘外观

  • typedef enum {  
  •     UIKeyboardAppearanceDefault,    // 默认外观:浅灰色   
  •     UIKeyboardAppearanceAlert,      //深灰/石墨色   
  • } UIKeyboardAppearance;  
  • 用法用例:

    textView.keyboardAppearance=UIKeyboardAppearanceDefault;

    三、回车键

  • typedef enum {  
  •     UIReturnKeyDefault,  //默认:灰色按钮,标有Return
  •     UIReturnKeyGo,  //标有Go的蓝色按钮
  •     UIReturnKeyGoogle,  //标有Google的蓝色按钮,用于搜索
  •     UIReturnKeyJoin,  //标有Join的蓝色按钮
  •     UIReturnKeyNext,  //标有Next的蓝色按钮
  •     UIReturnKeyRoute,  //标有Route的蓝色按钮
  •     UIReturnKeySearch,  //标有Search的蓝色按钮
  •     UIReturnKeySend,  //标有Send的蓝色按钮
  •     UIReturnKeyYahoo,  //标有Yahoo!的蓝色按钮,用于搜索
  •     UIReturnKeyDone,  //标有Done的蓝色按钮
  •     UIReturnKeyEmergencyCall,  //紧急呼叫按钮
  • } UIReturnKeyType;  
  • 用法用例:

    textView.returnKeyType=UIReturnKeyGo;

    四、自动大写

  • typedef enum {  
  •     UITextAutocapitalizationTypeNone, //不自动大写   
  •     UITextAutocapitalizationTypeWords, //单词首字母大写   
  •     UITextAutocapitalizationTypeSentences, //句子首字母大写   
  •     UITextAutocapitalizationTypeAllCharacters, //所有字母大写   
  • } UITextAutocapitalizationType;  
  • 用法用例:

    textField.autocapitalizationType = UITextAutocapitalizationTypeWords;

    五、自动更正

  • typedef enum {  
  •     UITextAutocorrectionTypeDefault,//默认   
  •     UITextAutocorrectionTypeNo,//不自动更正   
  •     UITextAutocorrectionTypeYes,//自动更正   
  • } UITextAutocorrectionType;  
  • 用法用例:

    textField.autocorrectionType = UITextAutocorrectionTypeYes;

    六、安全文本输入

    textView.secureTextEntry=YES;

    开启安全输入主要是用于密码或一些私人数据的输入,此时会禁用自动更正和自此缓存。


        
    [2] 用AlarmManager回设置作业-定时运行
        来源: 互联网  发布时间: 2014-02-18
    用AlarmManager来设置作业-定时运行

    安排作业:

          long repeatTime=24*60*60*1000;
            /* 将更换桌布的排程叵丈AlarmManager中 */
            Intent intent = new Intent(EX06_13.this,MyReceiver.class);
            PendingIntent sender = PendingIntent.getBroadcast(EX06_13.this,
                0, intent, 0);
            AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
            /* setRepeating()让排程重复执行
               startTime为开始执行时间
               repeatTime为重复执行间隔
               AlarmManager.RTC?使服务休眠时仍然会执行 */
            am.setRepeating(AlarmManager.RTC,startTime,repeatTime,sender);

     

     

    取消作业:

          Intent intent = new Intent(EX06_13.this,MyReceiver.class);
          PendingIntent sender = PendingIntent.getBroadcast(EX06_13.this,
                0, intent, 0);
            /* 由AlarmManager中移除排程 */
            AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
            am.cancel(sender);


        
    [3] 视图之UINavigationController构造解析(侧重于文档分析)
        来源: 互联网  发布时间: 2014-02-18
    视图之UINavigationController结构解析(侧重于文档分析)
    UINavigationController是IOS编程中比较常用的一种容器view controller,很多系统的控件(如UIImagePickerViewController)以及很多有名的APP中(如qq,系统相册等)都有用到。说是使用详解,其实我只会介绍几个自认为比较重要或者容易放错的地方进行讲解,下面让我们挨个探探究竟:

      首先上一张图(来自苹果官方文档):

    1、navigationItem

      我们都知道navigationItem是UIViewController的一个属性,这个属性是为UINavigationController服务的。文档中是这么解释的“The navigation item used to represent the view controller in a parent’s navigation bar. (read-only)”,即navigation item在navigation Bar代表一个viewController,具体一点儿来说就是每一个加到navigationController的viewController都会有一个对应的navigationItem,该对象由viewController以懒加载的方式创建,稍后我们可以在对象中堆navigationItem进行配置,可以设置leftBarButtonItem, rightBarButtonItem, backBarButtonItem, title以及prompt等属性。前三个每一个都是一个UIBarButtonItem对象,最后两个属性是一个NSString类型描述,注意添加该描述以后NavigationBar的高度会增加30,总的高度会变成74(不管当前方向是Portrait还是Landscape,此模式下navgationbar都使用高度44加上prompt30的方式进行显示)。当然如果觉得只是设置文字的title不够爽,你还可以通过titleview属性指定一个定制的titleview,这样你就可以随心所欲了,当然注意指定的titleview的frame大小,不要显示出界。

      举个简单的例子:

    [java] view plaincopy
    // set rightItem  
    UIBarButtonItem *rightItem = [[UIBarButtonItem alloc] initWithTitle:@"Root"   
                                                                  style:UIBarButtonItemStyleBordered   
                                                                 target:self   
                                                                 action:@selector(popToRootVC)];  
    childOne.navigationItem.rightBarButtonItem = rightItem;  
    [rightItem release];  
          
    // when you design a prompt for navigationbar, the hiehgt of navigationbar will becaome 74, ignore the orientation  
    childOne.navigationItem.prompt = @"Hello, im the prompt";  
         这段代码设置了navigationItem的rightBarButtonItem,同时设置了prompt信息。




    2、titleTextAttributes(ios5.0以后可用)

      这是UINavigationBar的一个属性,通过它你可以设置title部分的字体,这个属性定义如下:

    [cpp] view plaincopy
    /* You may specify the font, text color, text shadow color, and text shadow offset for the title in the text attributes dictionary, using the keys found in UIStringDrawing.h. 
     */  
    @property(nonatomic,copy) NSDictionary *titleTextAttributes __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_5_0) UI_APPEARANCE_SELECTOR;  
      它的dictionary的key定义以及其对应的value类型如下:
    
    [java] view plaincopy
    //    Keys for Text Attributes Dictionaries  
    //    NSString *const UITextAttributeFont;                       value: UIFont  
    //    NSString *const UITextAttributeTextColor;                 value: UIColor  
    //    NSString *const UITextAttributeTextShadowColor;       value: UIColor  
    //    NSString *const UITextAttributeTextShadowOffset;      value: NSValue wrapping a UIOffset struct.  

           下面看一个简单的例子:

    [java] view plaincopy
    NSDictionary *dict = [NSDictionary dictionaryWithObject:[UIColor yellowColor] forKey:UITextAttributeTextColor];  
    childOne.navigationController.navigationBar.titleTextAttributes = dict;  

      这个例子就是设置title的字体颜色为黄色,怎么样简单吧。



    3、wantsFullScreenLayout

      viewController的一个属性,这个属性默认值是NO,如果设置为YES的话,如果statusbar,navigationbar, toolbar是半透明的话,viewController的view就会缩放延伸到它们下面,但注意一点儿tabBar不在范围内,即无论该属性是否为YES,view都不会覆盖到tabbar的下方。



    4、navigationBar中的stack

      这个属性可以算是UINavigationController的灵魂之一,它维护了一个和UINavigationController中viewControllers对应的navigationItem的stack,该stack用于负责navigationbar的刷新。“注意:如果navigationbar中navigationItem的stack和对应的NavigationController中viewController的stack是一一对应的关系,如果两个stack不同步就会抛出异常。

      下面举个简单抛出异常的例子:

    [java] view plaincopy
    SvNavChildViewController *childOne = [[SvNavChildViewController alloc] initWithTitle:@"First" content:@"1"];  
    [self.navigationController pushViewController:childOne animated:NO];  
    [childOne release];  
          
    // raise exception when the stack of navigationbar and navigationController was not correspond  
    [self.navigationController.navigationBar popNavigationItemAnimated:NO];  

        当pushViewcontroller的之后,强制把navigationBar中的navigationItem pop一个出去,程序立马挂起。当然这纯粹只是为了验证问题,我想一般的码农没有人会这么写的。


    5、navigationBar的刷新

      通过前面介绍的内容,我们知道navigationBar中包含了这几个重要组成部分:leftBarButtonItem, rightBarButtonItem, backBarButtonItem, title。当一个view controller添加到navigationController以后,navigationBar的显示遵循一下几个原则:

      1)、Left side of the navigationBar

      a)如果当前的viewController设置了leftBarButtonItem,则显示当前VC所自带的leftBarButtonItem。

      b)如果当前的viewController没有设置leftBarButtonItem,且当前VC不是rootVC的时候,则显示前一层VC的backBarButtonItem。如果前一层的VC没有显示的指定backBarButtonItem的话,系统将会根据前一层VC的title属性自动生成一个back按钮,并显示出来。

      c)如果当前的viewController没有设置leftBarButtonItem,且当前VC已是rootVC的时候,左边将不显示任何东西。

      此处注意:5.0中新增加了一个属性leftItemsSupplementBackButton,通过指定该属性为YES,可以让leftBarButtonItem和backBarButtonItem同时显示,其中leftBarButtonItem显示在backBarButtonItem的右边。

      2)、title部分

      a)如果当前VC通过 .navigationItem.titleView指定了自定义的titleView,系统将会显示指定的titleView,此处要注意自定义titleView的高度不要超过navigationBar的高度,否则会显示出界。

      b)如果当前VC没有指定titleView,系统则会根据当前VC的title或者当前VC的navigationItem.title的内容创建一个UILabel并显示,其中如果指定了navigationItem.title的话,则优先显示navigationItem.title的内容。

      3)、Right side of the navigationBar

      a)如果当前VC指定了rightBarButtonItem的话,则显示指定的内容。

      b)如果当前VC没有指定rightBarButtonItem的话,则不显示任何东西。



    6、Toolbar

      navigationController自带了一个工具栏,通过设置 self.navigationController.toolbarHidden = NO来显示工具栏,工具栏中的内容可以通过viewController的toolbarItems来设置,显示的顺序和设置的NSArray中存放的顺序一致,其中每一个数据都一个UIBarButtonItem对象,可以使用系统提供的很多常用风格的对象,也可以根据需求进行自定义。

      设置Toolbar内容的例子:

    [cpp] view plaincopy
    // test ToolBar  
    UIBarButtonItem *one = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:nil action:nil];  
    UIBarButtonItem *two = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemBookmarks target:nil action:nil];  
    UIBarButtonItem *three = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:nil action:nil];  
    UIBarButtonItem *four = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemEdit target:nil action:nil];  
    UIBarButtonItem *flexItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];  
    [childOne setToolbarItems:[NSArray arrayWithObjects:flexItem, one, flexItem, two, flexItem, three, flexItem, four, flexItem, nil]];  
    [one release];  
    [two release];  
    [three release];  
    [four release];  
    [flexItem release];  
          
    childOne.navigationController.toolbarHidden = NO;  

    7、UINavigationControllerDelegate

      这个代理真的很简单,就是当一个viewController要显示的时候通知一下外面,给你一个机会进行设置,包含如下两个函数:

    [cpp] view plaincopy
    // Called when the navigation controller shows a new top view controller via a push, pop or setting of the view controller stack. 
    - (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated; 
    - (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated; 
      当你需要对某些将要显示的viewController进行修改的话,可实现该代理。



    8、UINavigationController的viewControllers属性

      通过该属性我们可以实现一次性替换整个navigationController的层次, 这个过程如果通过setViewControllers:animated:来设置,并指定动画为YES的画,动画将会从当前的navigationController所显示的vc跳转到所设置的目标viewController的最顶层的那个VC,而中间其他的VC将会被直接从VC层级中移除和添加进来(没有动画)。



    9、topViewController Vs visibleViewController

      topViewController代表当前navigation栈中最上层的VC,而visibleViewController代表当前可见的VC,它可能是topViewController,也可能是当前topViewController present出来的VC。因此UINavigationController的这两个属性通常情况下是一样,但也有可能不同。


    本文转载自:http://www.cnblogs.com/smileEvday/archive/2012/05/10/2495153.html#2374395

    欢迎加入ios开发讨论群:73254416,参与交流讨论。

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