XCode Interface Builder开发——1

创建Xcode项目

  • 选择第二个选项

  • 选择Single View App,点击Next

  • 设置完后点击Next


Xcode基本面板

  • 导航面板

  • 工具栏项目


简单的练手项目

要求:

创建三个按钮和一个label控件,通过对不同按钮添加事件来改变label的颜色和字体

步骤:

  • 将label和button拖拽入view controller的view中

  • 点击要修改的控件,通过打开attributes inspector将按钮名称分别改为红、黄、蓝色,label的text改为"这是一段文字“

  • 在ViewController的.m源文件中的类扩展中添加label属性:

@interface ViewController ()

@property(nonatomic,weak) IBOutlet UILabel *label; //任何需要连接到nib文件中的对象的实例变量都必须以IBOutlet关键字开头

@end
  • 将属性与刚刚拖入的label控件进行连线

  • 在ViewController的.m源文件中写入代码:

//IBAction关键字告诉Interface Builder,此方法是一个操作,且可以被某个控件触发
-(IBAction)clickRedButton:(id)sender{
NSLog(@"按下了红色按钮!"); //在控制台通知
self.label.textColor=[UIColor redColor]; //改变label颜色
} -(IBAction)clickYellowButton:(id)sender{
NSLog(@"按下了黄色按钮!");
self.label.textColor=[UIColor yellowColor];
self.label.font=[UIFont systemFontOfSize:20.f];
} -(IBAction)clickblueButton:(id)sender{
NSLog(@"按下了蓝色按钮!");
self.label.textColor=[UIColor blueColor];
self.label.font=[UIFont systemFontOfSize:30];
}
  • 操作同上,将这三个方法分别与三个新建的按钮进行连线:

  • 点击运行


重点

  • IBOutlet

该关键字的作用是告诉Interface Builder,此实例变量将被连接到nib中的对象。你创建的任何需要连接到nib文件中的对象的实例变量都必须以IBOutlet关键字开头。打开Interface Builder时,它会在项目头文件中扫描此关键字,可以根据这些(且只能根据这些)变量将代码连接到nib。

@property(nonatomic,weak) IBOutlet UILabel *label;
//该处使用weak是因为控件一直是在ViewController类中存在的,并且为强引用,此处为了不影响控件,其属性应为弱引用,若为强引用可能会造成在ViewController中删除控件后,其引用个数仍为1的情况。
  • IBAction

该关键字告诉Interface Builder,此方法是一个操作,且可以被某个控件触发

  • 判断是否能连线

    1、属性(IBOutlet)都能连线

    2、方法(IBAction)需要看连线对象是否继承于UIControl

  • 连接方法补充:

最新文章

  1. ES6的Iterator,jquery Fn
  2. velocity 判断 变量 是否不是空或empty
  3. imx6 uboot lcd
  4. 初学Java之Pattern与Matcher类
  5. Zygote(app_process)相关分析1
  6. 纪念大一的日子,一个简单的C++
  7. GCC、GDB、Makefile
  8. 20160220.CCPP体系详解(0030天)
  9. Troubleshooting Autoinvoice Import
  10. ios 当margin-left margin-right 超过设备宽度
  11. call和apply(学习笔记)
  12. 【XSY2762】插线板 分块
  13. go context
  14. FT_ND_API.dll
  15. Spring Boot中使用JavaMailSender发送邮件
  16. dp之混合背包poj1742(推荐)
  17. Yii框架操作数据库的几种方式与mysql_escape_string
  18. Django之Form字段插件
  19. Java 读取目录下的所有文件
  20. exchange邮箱系统增加验证码机制

热门文章

  1. time_t 是不定长的,如果写在superblocck里,要用定长的类型
  2. [Batch 脚本] 批量生成文件夹
  3. Prometheus+Grafana 监控 Docker
  4. 在Spring Boot中配置web app
  5. Linux系统管理第六次作业 进程和计划任务管理
  6. AIX如何点亮HBA卡
  7. 怎么在Chrome和Firefox浏览器中清除HSTS设置?
  8. Linux下Wiki服务器的搭建
  9. 数学--数论-- HDU 2601 An easy problem(约束和)
  10. P1459 三值的排序 Sorting a Three-Valued