storyboard 项目转纯代码

项目为了以后迭代将原有的sb项目改为纯代码。sb
对国际化的支持还不够好
1.拆掉xib ,xib一般耦合性最低,不会引起界面跳转上的崩溃。拆除xib,重写代码中 alloc init 的初始化方法,如有需要的参数,一次性传入,包括自定义界面的宽高,图片名称,弹框文字等。
2.引入masnory约束库,masnory写法需要适应一下,好在和autolayout没有什么不同,中间存在问题的地方是有些地方不能使用masnory约束

1.
tableview的headview 和footview不能使用masnory约束,但是headview里面的部分可以使用,原因是tableview.tableviewheadview = headview.系统会更新他的Frame,此时masnory会失效。
可以总结为需要将某个view赋给某个控件的一部分的地方,就不要使用masnory了。
2.
需要做动画的部分使用Frame来做,因为masonry的动画不好控制。

3.拆掉xib后开始拆分storyboard,storyboard的拆分,如果存在多个sb,应该从,sb中包含单个sb界面比较少的开始下手,因为依赖性不强。
4.处理cell的部分,-(id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier 在这个方法里面初始化cell
5.处理多个sb中都用到的同一个界面,减少其他sb的拆分难度。一个sb存在多个界面的首先处理和其他界面关联比较少的界面。
6.处理静态cell的部分。静态cell纯代码是不能够使用的,将uitableviewcontroller 改成uiviewcontroller 并添加uitabbleview,注意到如果存在sectionhead和sectionfooter,需要将这两个部分处理颜色为clearcolor
- (void)tableView:(UITableView *)tableView willDisplayFooterView:(UIView *)view forSection:(NSInteger)section
{
view.tintColor = [UIColor clearColor];
}

7.将sb中的跳转方法,performSelectorWithIdentity部分全部转移到 (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 中,根据switch来判断跳转到不同行。

8.拆分containerView部分,container部分需要处理两步,第一步:将container的view删除,留下container指向的sb部分,重写指向sb的初始化,具体代码 为

 _VC = [[UIViewController alloc] init];
    //2.将目标控制器的视图赋值给容器视图(不能用addSubView,否则设置frame无效)
    UIView *containerView = _VC.view;
    //3.添加到当前视图
    [self.view addSubview:containerView];

9.完成全部后,搜索关键字storyboard 以及performSelector 部分,完全没有视为成功,记得删除sb的时候,最好看下本地的文件是否真实删除成功了。记得把国际化的东西也清理掉。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值