Xib&Storyboard

Xcode右边编辑辅助栏介绍

上半部分从左到右:
1、文件说明
2、快速帮助
3、类的关联
4、属性设置
5、布局设置
6、事件链接
下半部分从左到右:
1、文件库
2、代码库
3、控件库
4、媒体库


Xib用法


使用xib自定义UITableViewCell, xib如图:
这里写图片描述

需要绑定类型,如图:
这里写图片描述

点击label,调整以适配,如图:
这里写图片描述

//根据xib文件的名字,然后转换为UINib对象

    UINib *nib = [UINib nibWithNibName:@"BookCell" bundle:nil];
    [_tableView registerNib:nib forCellReuseIdentifier:@"cellId"];

这里写图片描述
当xib中有多个button时,可以创建修改类型创建数组,而不必一个一个拉取。代码如下:

@property (retain, nonatomic) IBOutletCollection(UIButton) NSArray *buttonArray;

Storyboard用法

这里写图片描述


UITabBarItem的选中状态图片不显示解决办法
这里写图片描述

首先右边栏添加如图:这里写图片描述

然后关联文件,在代码中修改选中图片

1.原型cell
这里写图片描述
上图是自定制的cell,只有在UITableViewControler中才可以自定义cell,由UITableView进行布局

无需在UITableViewController代码中进行注册cell类型和复用标示,添加标示如图:
这里写图片描述

运行效果如下图,进行了复用:
这里写图片描述


2.静态cell
静态cell也是交由UITableViewController进行管理,只有由UITableViewController管理才可以进行定制

静态cell不进行复用,常用于定制固定的cell,运行如下图:
静态cell应该注意的问题
1 .
点击tableview设置静态cell,如下图
这里写图片描述
2 . UITableViewController中不要复习返回个section个数和cell个数的代理方法,否则程序会优先调用代码返回个数,从而不会显示静态cell。

这里写图片描述


3、关联跳转
Push、模态跳转
这里写图片描述

根据pushSegueId push跳转,id如下图:
这里写图片描述

- (IBAction)pushSegue:(id)sender {
    [self performSegueWithIdentifier:@"pushSegueId" sender:nil];
}

根据modalSegueId模态跳转,id如下图:
这里写图片描述

- (IBAction)modalSegue:(id)sender {
    [self performSegueWithIdentifier:@"modalSegueId" sender:nil];
}

//此方法是无连线根据页面id标示直接跳转,id标示如下图:
这里写图片描述

- (IBAction)noSeguePush:(id)sender {
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    UIViewController *blueVC = [storyboard instantiateViewControllerWithIdentifier:@"BlueId"];
    [self.navigationController pushViewController:blueVC animated:YES];
}

pragma mark - Navigation

//执行任何segue都会调用该方法,可以使用此方法进行控制页面之间的传值

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if ([segue.identifier isEqualToString:@"modalSegueId"]) {
        GreenViewController *gvc = segue.destinationViewController;
        //inputString成员变量
        gvc.inputString = @"hahaha,传递成功了^_^";
    }
}


自定义的segue

此方法需继承UIStoryboardSegue
具体实现代码如下:

#import "CustomSegue.h"

@implementation CustomSegue

//实现自定义的segue必须重写这个方法
- (void)perform
{
    UIViewController *src = self.sourceViewController;
    UIViewController *dst = self.destinationViewController;

    CGRect originalFrame = src.view.frame;
    CGRect changeFrame = originalFrame;
    changeFrame.origin.y += originalFrame.size.height;

    [UIView animateWithDuration:0.5 animations:^{
        src.view.frame = changeFrame;
    } completion:^(BOOL finished) {
        src.view.alpha = 0;
        dst.view.alpha = 0;
        dst.view.frame = changeFrame;
        [src.view.superview addSubview:dst.view];
        [UIView animateWithDuration:0.5 animations:^{
            dst.view.alpha = 1.0;
            dst.view.frame = originalFrame;
        } completion:^(BOOL finished) {
            src.view.alpha = 1.0;
            [dst.view removeFromSuperview];
            [src presentViewController:dst animated:NO completion:nil];
        }];
    }];
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值