XCode Interface Builder开发——1
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连接方法补充:
XCode Interface Builder开发——1的更多相关文章
- XCode Interface Builder开发——2
XCode Interface Builder开发--2 简单的练手项目--仿苹果自备的计算器 简介 制作一个简易功能的计算器并非难事,但是其中要考虑的不同情况却仍有许多,稍不留神就会踩坑. 例如: ...
- ***Xcode Interface Builder或Storyboard中可建立那两种连接?
在Xcode Interface Builder或Storyboard中,可建立到输出口(IBOutlet)和操作(方法,IBAction)的连接. IBOutlet are for output C ...
- IOS 使用Interface Builder开发界面入门与技巧
引言: 通过Interface Builder(简称IB)来制作界面一直是iOS开发界饱受争议的方式.主要争议的话题是不太适合团队协作开发,再就是对IB的使用比较生疏,觉得IB只能完成一些很简单的功能 ...
- 苹果开发工具:Xcode和Interface Builder
摘要:在Mac OS X上开发,首选Xcode继承开发环境.本文对开发工具套件中最重要的Xcode和Interface Builder两个工具做了简要介绍,并提供<苹果开发工具概述>PDF ...
- iOS开发工具Xcode:Interface Builder
简介: Interface Builder(IB)是Mac OS X平台下用于设计和测试用户界面(GUI)的应用程序(非开源).为了生成GUI,IB并不是必需的,实际上Mac OS X下所有的用户界面 ...
- [转]使用 Xcode 5 和 Interface Builder创建 Hello World App
转载地址:http://www.ithome.me/archives/581.html 使用 Xcode 5 和 Interface Builder创建 Hello World App 发表回复 当x ...
- iOS 8 Auto Layout界面自动布局系列2-使用Xcode的Interface Builder添加布局约束
http://blog.csdn.net/pucker/article/details/41843511 上一篇文章<iOS 8界面自动布局系列-1>简要介绍了iOS界面布局方式的前世今生 ...
- 【转 iOS 8 Auto Layout界面自动布局系列2-使用Xcode的Interface Builder添加布局约束
原文网址:http://blog.csdn.net/pucker/article/details/41843511 上一篇文章<iOS 8界面自动布局系列-1>简要介绍了iOS界面布局方式 ...
- 转:Cocoa、Foundation、UIKit、Objective-c、XCode、Interface Builder的概念
Cocoa 是在Mac OS X系统上原生的一个编译环境.他包含两个框架,其实就是一系列的类库,Foundation和AppKit. 在你的iPhone等掌上设备上,使用的则是他的一个子类 - Coc ...
随机推荐
- SpringBoot项目集成Redis
一.在pom文件中添加依赖 <!-- 集成redis --> <dependency> <groupId>org.springframework.boot</ ...
- JavaScript type="text/template"的用法
JavaScript type="text/template"相当于定义一个模板,如果没有使用html()方法的话,是显示不出来的,我们直接看例子(我是在tp框架的里面写的) &l ...
- [http 1.1] M-POST w3
5. Mandatory HTTP Requests An HTTP request is called a mandatory request if it includes at least one ...
- rabbitMQ安装docker版 /权限管理命令
1.进入docker hub镜像仓库地址:https://hub.docker.com/ 2.搜素rabbitMQ 查询镜像,可以看到多种类型,选择带有web页面的(managment) 3.拉取镜像 ...
- ZK安装、ZK配置、ZK集群部署踩过的大坑
天天采坑.来来咱们一起来填zookeeper的坑呀!! 解决坑一定要注意zk根目录下的神器,那就是logs目录下的日志, 第一坑:错误: 找不到或无法加载主类 org.apache.zookeeper ...
- CodeForces - 1102B Array K-Coloring
B. Array K-Coloring time limit per test2 seconds memory limit per test256 megabytes inputstandard in ...
- 图论--Floyd总结
Key word: ①最短路 ②传递闭包:大小关系 数值关系 先后关系 联通关系 ③floyd变形 ④实现方式:插点发法 ⑤思想:动态规划 1.最短路: 最短路 ...
- 10)drf 过滤器(条件查询 排序 ) 分页器
一.群查接口各种筛选组件 数据准备 models.py class Car(models.Model): name = models.CharField(max_length=16, unique=T ...
- cmake安装jsoncpp
cd jsoncpp- mkdir -p build/debug cd build/debug cmake -DCMAKE_BUILD_TYPE=release -DBUILD_STATIC_LIBS ...
- 从0开始学自定义View -1
PS:好久没有写博客了,之前的东西有所忘记,百度一下竟然查到了自己的写过的博客,访问量还可以,一开始的写博客的初衷是把自己不会的记录下来,现在没想到也有博友会关注我,这就给了我动力,工作之余把零零碎碎 ...