美文网首页
03-UI进阶(3)

03-UI进阶(3)

作者: cdd48b9d36e0 | 来源:发表于2016-12-14 22:19 被阅读3次

    0612-私人通讯录数据存储

    1. 关于Navigationcontroller(01-设置导航条的内容)

    • 导航栏的内容只有栈顶控制器决定
    • iOS7之后默认会把导航条上面的按钮渲染成蓝色,通过下面这行代码告诉苹果不要渲染图片image = [image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
    • 导航条上面的控件位置不能由开发者决定,开发者只能控制尺寸;
      [btn sizeToFit]这个方法可以让控件尺寸快速由图片决定,故这个方法只能设置尺寸不能设置位置

    2. sb搭建两个vc之间的跳转(02-控制器view的生命周期)

    (注:往导航栏上拖的按钮必须是UIBarbuttoniterm类型)control按住按钮托向另一个VC,放手选择show或push,推荐选择push,因为选show的话不能直接在sb上修改下级VC的title

    3. VC的view生命周期中- (void)viewWillLayoutSubviews和- (void)viewDidLayoutSubviews默认会被调用多次,所以尽量少在这种方法里写东西(02-控制器view的生命周期)

    4. 注意监听TextField内容变化的两个方法的区别(04-通讯录(登录界面业务逻辑))

    // 这个方法才是正在监听文本框内容的改变
    [_accountField addTarget:self action:@selector(textChange) forControlEvents:UIControlEventEditingChanged];```
    

    //这个方法是用来监听用户的输入,且不能取代上面那个方法,因为这个方法不能及时获取文本框的内容

    • (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
      NSLog(@"%@",_accountField.text);
      return YES;
      }```

    5. 关于Segue(05-通讯录(登录功能))

    • Storyboard上每一根用来界面跳转的线,都是一个UIStoryboardSegue对象(简称Segue)
    • 3个属性
    //唯一标识
    @property(nonatomic,readonly)NSString *identifier;
    //来源控制器
    @property(nonatomic,readonly)id sourceViewController;
    //目标控制器
    @property(nonatomic,readonly)id destinationViewController;```
    - Segue可以分为2大类型
     - 自动型:点击某个控件后(比如按钮),自动执行Segue,自动完成界面跳转
    ![](https://img.haomeiwen.com/i1477016/100940e4d473a21d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
     - 手动型:需要通过写代码手动执行Segue,才能完成界面跳转
    ![](https://img.haomeiwen.com/i1477016/c55e7c5ed16bc8ae.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    - 这个是跳转方法```[self performSegueWithIdentifier:@“login2contacts”sender:nil];```,在跳转之前下面这个方法可以执行一些你想要的操作,注意segue及其一系列操作只能在sourceViewController里进行
    
    
    
    • (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
      UIViewController *vc = segue.destinationViewController;
      vc.title = [NSString stringWithFormat:@"%@的联系人列表", _accountField.text];
      NSLog(@"%@--%@",segue.sourceViewController,segue.destinationViewController);
      }```

    相关文章

      网友评论

          本文标题:03-UI进阶(3)

          本文链接:https://www.haomeiwen.com/subject/nqcwmttx.html