美文网首页
iOS_UI_14_可视化StoryBoard

iOS_UI_14_可视化StoryBoard

作者: 孤城99 | 来源:发表于2016-12-09 21:51 被阅读0次

第十四章 可视化StoryBoard

1.Xib和StoryBoard的对比
    相同点:都属于IB编程的方式,可以快速构建GUI。
    不同点:xib侧重于单文件(单独的控制器或者视图)编辑,storyBoard侧重于多页面关联。storyBoard可以直观的梳理出页面间的逻辑,并且所有页面跳转逻辑均可在- (void)prepareforSegue:(UIStoryBoardSegue*)segue:(id)sender方法完成,方便界面间数据统一管理
2.注意事项:不需要手动创建window,只需将创建好的StoryBoard在应用程序配置General中设置为Main Interface
3.我们可以通过选中控制器,修改 (is initial View Controller),或者直接移动表示程序入口的箭头
4.利用StoryBoard绘制自定义单元格
    1.创建自定义cell是选中左侧TableViewCell
    2.绘制自定义UI界面
    3.设置重用标识符
    4.将storyBoard文件关联至对应的UITableViewControll'er和UITableViewCell子类(自己创建的类)
    5.在UITableViewController中完成代码书写:设置section和row数量,设置cell,根据实际情况调整cell的高度
    6.注意:cell不再需要注册
5.StoryBoard页面跳转分为两种
    1.代码方式:使用代码通过控制器标识来跳转。比如在当前页面的某一个事件中跳转到一个标示为“customVC”的控制器页面中:[self performSegueWithIdentifier:@"customVC" senderL:nil];
    2.连线方式:直接使用拖拽可以给按钮连线关联两个页面:选中按钮,按住control,从按钮向下一级页面连线,按钮不需要添加响应方法
    3.方式:
        push:push出下个界面
        modal:模态出下个界面
        custom:自定义,需要我们自己实现页面跳转,需要自定义segue
6.segue:可视化编程中连接两个页面的线条,称为segue
    1.iPhoneGUI开发中类型主要有三种,包括push、modal、custom
    2.其中custom需要我们自定义segue来完成页面间跳转
    3.segue有三个重要属性:标识符,源控制器,目标控制器
7.自定义segue
    1.新建一个类继承于UIStoryboardSegue
    2.选中前一个控制器,按住control鼠标辅助完成连线,选择custom
    3.选中自定义segue,设置segue的identifier以及关联类
    4.在segue类里面重写perform方法(界面间跳转默认执行的方法),自定义跳转效果
      - (void)perform{
          //获取源控制器
          UIViewController *v1 = (UIViewController*)self.sourceViewController;
          //获取目标控制器
          UIViewController *v2 = (UIViewController*)self.destinationViewController;
          //自定义页面切换效果
          [UIView transitionFromView:v1.view toView:v2.view duration: 10 options:UIViewAnimationOptionTransitionCurlDown completion:^(BOOL finished) {
          //动画完成后执行的部分
          􏲑􏰶􏲭􏰙􏳠􏱫􏲯􏱏􏲺􏴮 }];
      }
8.界面传值
    storyboard界面间跳转会执行
        - (void)prepareForSegue:(UIStoryboardSeugue*)segue sender:(id)sender方法,方便界面间数据统一管理。
    依据不同的segue标识符来完成数据处理
    - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
        CustomViewController *customVC = (CustomViewController*)segue.destinationViewController;
         if ([segue.identifier isEqualToString:@"push"]) {
             customVC.tempString = self.textField.text;
           }else{ NSLog(@"其他情况处理􏰰􏲜􏰛􏳓􏳢􏱪􏳳􏳳􏳳");
        } 
        
    }

相关文章

网友评论

      本文标题:iOS_UI_14_可视化StoryBoard

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