storyboard的基础知识

连线

目标

  • 连线前准备

    • 界面绑定代码文件
    • 界面仅仅只是用来显示,那么如果想写代码必须写在代码文件中。
    • 并且代码只能写在跟这个界面所绑定的代码文件中
    • 因为所有界面内容都在ViewController里面,所以要点黄色的“小铜钱”给这个ViewController绑定一个代码文件,绑定好后就可以把代码和连线弄在这个代码文件里了
  • 连线的目的

    • 通过连线才能够访问 Interface Builder 中控件的属性和方法
    • 要访问 Interface Builder 中控件的属性,需要连接 IBOutlet
    • 如果要监听 Interface Builder 中控件的事件,需要连接 IBAction
    • IBOutlet 可以连接到私有扩展中
    • IBAction 可以连接到实现中
    • IB 就是 Interface Builder 的缩写
  • 掌握几种连线的方式

    • Interface Builder 到源代码
  • 常见连线错误

连线演练

简单的加法计算器代码实现

@interface GLMainViewController ()
@property (weak, nonatomic) IBOutlet UITextField *num1Text;
@property (weak, nonatomic) IBOutlet UITextField *num2Text;
@property (weak, nonatomic) IBOutlet UILabel *resultLabel;
@end

@implementation GLMainViewController

/// 计算结果
- (IBAction)calculate {
    // 1. 获取界面结果数值
    NSInteger num1 = _num1Text.text.integerValue;
    NSInteger num2 = _num2Text.text.integerValue;

    // 2. 计算结果
    NSInteger result = num1 + num2;

    // 3. 设置结果
    _resultLabel.text = @(result).description;
}

@end


常见连线错误

  • 连线出现的愿意

    • 错将方法连接成了属性,又删除了
    • 连接完属性或者方法后改名了
    • ……
  • 如果连线错误运行程序时,程序会崩溃在 main.m,并且提示以下信息:

* Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[ setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key num3Text.'

翻译

由于 NSUnknownKeyException(未知的键值异常) 导致应用程序终止,CZMainViewController 这个类没有 num3Text

  • 代码中检查连线情

  • Interface Builder 中检查连线情况


解决连线的重要技巧

连线完成后,立即 cmd + r 执行程序,不要等到写了很多代码之后再运行!


Storyboard 的简单使用

目标

  • 区分 storyboard(故事板) 和 scene(场景)
  • 设置类前缀
  • 界面与程序的关联关系的建立

术语:Interface Builder

在早期版本的 iOS 开发包中,拖拽界面是一个完全独立的应用程序,叫做 Interface Builder

从 Xcode 4.0 开始 Interface Builder 和 Xcode 整合在了一起,不过一直到今天还有很多招聘需求上会要求精通 Interface Builder

Storyboard 界面概览

常用技巧

  • 程序入口箭头可以拖拽
    • 如果没有指定程序入口,会提示以下错误:

Failed to instantiate the default view controller for UIMainStoryboardFile 'Main' - perhaps the designated entry point is not set?

翻译:

为 'Main' Storyboard 文件实例化默认视图控制器失败,可能没有设置指定的入口

  • 选中控件,Option 拖拽可以复制一个新的控件
  • 按钮标签,选择菜单 EditorSize to Fit Content,可以根据内容自动调整大小

快捷键是 cmd + =

Storyboard 和程序文件之间的关系

设置类前缀

提示:使用 OC 开发时,已定注意使用类前缀,并且建议使用三个大写字母,以防止和其他的框架冲突!

  • 新建 CZMainViewController 继承自 UIViewController
  • viewDidLoad 方法增加断点,测试界面与程序的关联关系

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值