zoukankan      html  css  js  c++  java
  • [2]基础视图、程序启动流程(UITextField,UIButton,deleagte,程序启动流程)

    UITextField

        UITextField *passwordFied = [[UITextField alloc] initWithFrame:CGRectMake(160, 180, 160, 40)];
        passwordFied.borderStyle = UITextBorderStyleRoundedRect;
        //        UITextBorderStyleNone, 无边框
        //        UITextBorderStyleLine, 线
        //        UITextBorderStyleBezel, 阴影框
        //        UITextBorderStyleRoundedRect 圆角
        passwordFied.secureTextEntry = YES;//让输入的内容以黑点的形式显现,实现密文功能.
        passwordFied.keyboardType = UIKeyboardTypeNamePhonePad;
    //    UIKeyboardTypeDefault,                // Default type for the current input method.
    //    UIKeyboardTypeASCIICapable,           // Displays a keyboard which can enter ASCII characters, non-ASCII keyboards remain active
    //    UIKeyboardTypeNumbersAndPunctuation,  // Numbers and assorted punctuation.
    //    UIKeyboardTypeURL,                    // A type optimized for URL entry (shows . / .com prominently).
    //    UIKeyboardTypeNumberPad,              // A number pad (0-9). Suitable for PIN entry.
    //    UIKeyboardTypePhonePad,               // A phone pad (1-9, *, 0, #, with letters under the numbers).
    //    UIKeyboardTypeNamePhonePad,           // A type optimized for entering a person's name or phone number.
    //    UIKeyboardTypeEmailAddress,           // A type optimized for multiple email address entry (shows space @ . prominently).
    //    UIKeyboardTypeDecimalPad NS_ENUM_AVAILABLE_IOS(4_1),   // A number pad with a decimal point.
    //    UIKeyboardTypeTwitter NS_ENUM_AVAILABLE_IOS(5_0),      // A type optimized for twitter text entry (easy access to @ #)
    //    UIKeyboardTypeWebSearch NS_ENUM_AVAILABLE_IOS(7_0),    // A default keyboard type with URL-oriented addition (shows space . prominently).
    //    
    //    UIKeyboardTypeAlphabet = UIKeyboardTypeASCIICapable, // Deprecated
        passwordFied.tag = 1002;
        //    passwordFied.delegate = self;
        passwordFied.placeholder = @"请输入密码";//占位符,提示用户这个输入框输入什么内容
       
        passwordFied.autocapitalizationType = UITextAutocapitalizationTypeNone;//这个属性修改首字母默认大写,当你输入一个邮箱的时候,程序会认为你输入的英文.
        [passwordFied becomeFirstResponder];//通过这句代码,当程序一启动时,就会弹出键盘,让用户这输入框,成为第一响应者.
        [containerView addSubview:passwordFied];//给containerView视图添加 passwordFied输入框
    

    UIBotton

        UIButton *registButton = [UIButton buttonWithType:UIButtonTypeSystem];//创建UIBotton对象
        registButton.frame = CGRectMake(30, 240, 90, 40);
        
        [registButton setTitle:@"注册" forState:UIControlStateNormal];//给button添加一个标题显示
        registButton.titleLabel.font = [UIFont boldSystemFontOfSize:20];
        
        [registButton setBackgroundImage:[UIImage imageNamed:@"100.jpg"] forState:UIControlStateNormal];//设置背景图片
        
    //    registButton.titleLabel.textColor = [UIColor redColor];
        [registButton addTarget:self action:@selector(enterRegist) forControlEvents:UIControlEventTouchUpInside ]; //给Button添加事件,enterRegist是我们自己写的一个事件想应方法
        /*
         - (void)enterLogin
        {
             NSLog(@"进入登录页面");
        }   
        */
        [containerView addSubview:registButton];
        registButton.backgroundColor = [UIColor grayColor];
        [registButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];//修改字体颜色
    

    6种回收键盘的方法

    1.tag 值找到回收键盘的输入框

    UITextField *tf = (UITextField *)[self.window viewWithTag:1001];
    [tf resignFirstResponder];
    

    2.这种方法比较低效,因为需要把所有的子视图全部遍历一遍,将能编辑的空间结束编辑,也就是收回键盘.

    [self.view endEding:YES];
    [sefl.window.subview[0] endEdinting:YES];
    

    3通过找子视图集合中的某个视图对象,使其放弃第一种响应者

    //此处把view做了视图
    @property (retain,nonatomic) UIView *view;
    [self.window.subviews[0] subviews]; //获containerView的所有子视图
    [[self.window.subviews[0] subview][2] endEditing:YES];//与下面的效果一样
    [[self.window.subviews[0] subviews][2] resignFirstResponder];//释放响应
    

    4属性

    .h文件中 声明下属性tf
    @property (retain,nonatomic)  UITextField *tf;
    [self.tf resignFirstResponder];
    

    5 按钮事件

    //此种方法是在按钮事件上做了手脚 如果事件这么写 就会点击登录后关闭键盘
    [loginButton addTarget:userNameFieldaction:@selector(resignFirstResponder) forControlEvents:UIControlEventTouchUpInside];
    

    6代理delagate

    - (BOOL)textFieldShouldReturn:(UITextField *)textField
    {
       [textField resignFirstResponder];  
    }
    userNameField.delegate = self;  //对应的输入框要加句代码
    

    如果有俩个输入框,第一个输入框输完next到下一个,下一个输入结束才隐藏键盘的方法

    点return回收键盘

    .h文件
    @interface AppDelegate : UIResponder <UIApplicationDelegate,UITextFieldDelegate> // 添加协议UITextFieldDelegate
    - (BOOL)textFieldShouldReturn:(UITextField *)textField
    {    
        //账户 和密码
        UITextField *tf = (UITextField *)[self.window viewWithTag:1002];
        if(textField.tag == 1001)
        {
            [tf becomeFirstResponder];
        }
        else if(textField.tag == 1002)
        {
            [textField resignFirstResponder];
          
        }
        return  YES;
    
    }
    userNameField.tag = 1001;
    passwordFied.tag = 1002;
    userNameField.delegate = self;
    passwordFied.delegate = self;
    
    

    程序启动流

    我们给每个方法都写了一段代码
    NSLog(@"%s ,%d",__FUNCTION__,__LINE__); //输出方法名 及代码第多少行
    运行后输出为
    2015-04-21 20:48:44.786 Exercise[15585:753365] 应用程序加载完毕 ,启动的方法-[AppDelegate application:didFinishLaunchingWithOptions:] ,83
    2015-04-21 20:48:45.266 Exercise[15585:753365] Application windows are expected to have a root view controller at the end of application launch
    2015-04-21 20:48:45.352 Exercise[15585:753365] 进入前台,进入活跃状态,刷新页面-[AppDelegate applicationDidBecomeActive:] ,253
    2015-04-21 20:48:49.158 Exercise[15585:753365] 应用程序即将取消活跃状态-[AppDelegate applicationWillResignActive:] ,234
    2015-04-21 20:48:49.712 Exercise[15585:753365] 应用程序进入后台-[AppDelegate applicationDidEnterBackground:] ,241
    2015-04-21 20:48:50.786 Exercise[15585:753365] 将要进入前台-[AppDelegate applicationWillEnterForeground:] ,247
    2015-04-21 20:48:51.326 Exercise[15585:753365] 进入前台,进入活跃状态,刷新页面-[AppDelegate applicationDidBecomeActive:] ,253
    
    

    UIAlertView 小知识

    //创建方式
    UIAlertView *a1 = [[UIAlertView alloc] initWithTitle:@"提示" message:@"欢迎回来" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil];
    
    //判断输入框的账号密码是否正确 并返回 
    - (void)enterDelu
    {
        UITextField *tf1 = (UITextField *)[self.window viewWithTag:1001];
        UITextField *tf2 = (UITextField *)[self.window viewWithTag:1002];
        UIAlertView *a1 = [[UIAlertView alloc] initWithTitle:@"提示" message:@"欢迎回来" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil];
        UIAlertView *a2 = [[UIAlertView alloc] initWithTitle:@"提示" message:@"密码错误" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil];
        NSLog(@"%@",tf1);
        
        if ([tf1.text isEqual: @"anhao"] && [tf2.text isEqual: @"anhao"])
        {
            [a1 show];
        }
        else
        {
            [a2 show];
        }
    
    }
    
    

    小技巧

    怎么改变uitextfield placeholder的颜色和位置?

    //继承uitextfield,重写这个方法
    - (void) drawPlaceholderInRect:(CGRect)rect {
        [[UIColor blueColor] setFill];
        [self.placeholder drawInRect:rect withFont:self.font lineBreakMode:UILineBreakModeTailTruncation alignment:self.textAlignment];
    }
    

    uitextfield可参考 http://blog.csdn.net/ysy441088327/article/details/7625000

    On the road。。。
  • 相关阅读:
    flash中网页跳转总结
    as3自定义事件
    mouseChildren启示
    flash拖动条移出flash无法拖动
    需要一个策略文件,但在加载此媒体时未设置checkPolicyFile标志
    Teach Yourself SQL in 10 Minutes
    电子书本地转换软件 Calibre
    Teach Yourself SQL in 10 Minutes
    Teach Yourself SQL in 10 Minutes
    Teach Yourself SQL in 10 Minutes – Page 31 练习
  • 原文地址:https://www.cnblogs.com/ianhao/p/4445453.html
Copyright © 2011-2022 走看看