UI day 13 Xib可视化编程 storyboard可视化编程
2015-12-21 20:57
375 查看
Xib可视化编程
1.简单的说,xib就是拖控件编程,也可以说是可视化编程(所见即所得),使用xib编程相对于纯代码可以省下大量的敲代码的时间从而提高了程序的开发速度,Xcode4之后才可以在工程中直接使用xib编程,使用xib编程只是减轻了MVC中V设计的工作量,学好xib有助于了解MVC设计思想
2.IB(interface bulider),以后称之为xib由于xib文件,人能直接识别,所有xib文件会在编译后生成.nib文件(二进制文件)
3.xib文件中,在Xcode的右侧边框中比普通的文件多出四个选项卡 一共六个
第一个选项卡:对当前文件的描述
第二个选项卡:辅助选项卡,主要用来查询
第三个选项卡:自定义选项卡,可以用来配置和当前xib文件相关联的实体类,如果创建实体类时候,默认勾上also
create xib file,此时默认和实体类自动关联
第四个选项卡:控件属性选项卡,(优先显示自己的属性,在下面显示它父类的属性)
第五个选项卡:配置控件的frame
第六个选项卡:主要用来查看控件相关联的属性或者是方法或者是代理或者是它所遵循的一些协议
file‘s owner
指的是当前xib文件中View所属于的视图控制器,此时View就代表这个视图控制器的根视图
IBOutlet给实体类关联属性
IBAction给实体类关联方法
这个方法是视图控制器的制定初始化方法
如果不给nib文件名字,系统默认去查找跟当前实体类同名的nib名赋值到这里
第二个参数是当前应用程序的文件名
[NSBundle mainBundle]不写的话自动去找
一个方法可以关联多个按钮,一个按钮可以关联多个方法
- (id)initWithNibName:(NSString
*)nibNameOrNil bundle:(NSBundle
*)nibBundleOrNil
{
if (self
= [super
initWithNibName:nibNameOrNil
bundle:nibBundleOrNil]) {
}
return
self;
}
4.
- (void)viewDidLoad {
[super
viewDidLoad];
//从xib文件中加载cell
[self.tableView
registerNib:[UINib
nibWithNibName:@"ContactCell"
bundle:[NSBundle
mainBundle]]
forCellReuseIdentifier:kContactCell];
}
- (UITableViewCell
*)tableView:(UITableView
*)tableView cellForRowAtIndexPath:(NSIndexPath
*)indexPath {
//
第一种cell重用的方法
/*
static NSString *identifer = @"k-cell";
ContactCell *cell = [tableView dequeueReusableCellWithIdentifier:identifer];
if (cell == nil) {
cell = [[[NSBundle mainBundle]loadNibNamed:@"ContactCell" owner:nil options:nil]lastObject];
}
*/
//
第二种cell从用的方法
ContactCell
*cell = [tableView dequeueReusableCellWithIdentifier:kContactCell
forIndexPath:indexPath];
cell.nameLabel.text
=
@"夏琳";
return cell;
}
storyboard可视化编程
1.
如果一个视图控制器有多个按钮点击之后都要跳转到同一个界面,此时使用视图在视图控制器之间建立的segue连线,不过要给这个segue加一个标示
如果只有一个按钮点击后,跳转到下一个页面,此时使用按钮和视图控制器之间的连线
实现button控件中的方法
2. - (IBAction)handlePush:(UIButton
*)sender {
/*
// self.storyboard获取当前视图控制器所在的storyboard(故事板),也就是mian.storyboard
// instantiateViewControllerWithIdentifier通过视图控制器的唯一标示获取视图控制器对象
DeatilViewController *deatilVC = [self.storyboard instantiateViewControllerWithIdentifier:@"aa"];
[self.navigationController pushViewController:deatilVC animated:YES];
*/
通过选择视图控制器之间的连线
segue,完成页面之间的跳转
[self
performSegueWithIdentifier:@"jj"
sender:nil];
}
- (void)prepareForSegue:(UIStoryboardSegue
*)segue sender:(id)sender {
//
获取segue起始端的视图控制器对象
RootViewController *rootVC = [segue
sourceViewController];
//
获取push过去后的视图控制器对象
DeatilViewController
*detailVC = [segue
destinationViewController];
//
把textField中的内容取出来复制给下一个界面的属性
detailVC.string
= rootVC.textField.text;
}
1.简单的说,xib就是拖控件编程,也可以说是可视化编程(所见即所得),使用xib编程相对于纯代码可以省下大量的敲代码的时间从而提高了程序的开发速度,Xcode4之后才可以在工程中直接使用xib编程,使用xib编程只是减轻了MVC中V设计的工作量,学好xib有助于了解MVC设计思想
2.IB(interface bulider),以后称之为xib由于xib文件,人能直接识别,所有xib文件会在编译后生成.nib文件(二进制文件)
3.xib文件中,在Xcode的右侧边框中比普通的文件多出四个选项卡 一共六个
第一个选项卡:对当前文件的描述
第二个选项卡:辅助选项卡,主要用来查询
第三个选项卡:自定义选项卡,可以用来配置和当前xib文件相关联的实体类,如果创建实体类时候,默认勾上also
create xib file,此时默认和实体类自动关联
第四个选项卡:控件属性选项卡,(优先显示自己的属性,在下面显示它父类的属性)
第五个选项卡:配置控件的frame
第六个选项卡:主要用来查看控件相关联的属性或者是方法或者是代理或者是它所遵循的一些协议
file‘s owner
指的是当前xib文件中View所属于的视图控制器,此时View就代表这个视图控制器的根视图
IBOutlet给实体类关联属性
IBAction给实体类关联方法
这个方法是视图控制器的制定初始化方法
如果不给nib文件名字,系统默认去查找跟当前实体类同名的nib名赋值到这里
第二个参数是当前应用程序的文件名
[NSBundle mainBundle]不写的话自动去找
一个方法可以关联多个按钮,一个按钮可以关联多个方法
- (id)initWithNibName:(NSString
*)nibNameOrNil bundle:(NSBundle
*)nibBundleOrNil
{
if (self
= [super
initWithNibName:nibNameOrNil
bundle:nibBundleOrNil]) {
}
return
self;
}
4.
- (void)viewDidLoad {
[super
viewDidLoad];
//从xib文件中加载cell
[self.tableView
registerNib:[UINib
nibWithNibName:@"ContactCell"
bundle:[NSBundle
mainBundle]]
forCellReuseIdentifier:kContactCell];
}
- (UITableViewCell
*)tableView:(UITableView
*)tableView cellForRowAtIndexPath:(NSIndexPath
*)indexPath {
//
第一种cell重用的方法
/*
static NSString *identifer = @"k-cell";
ContactCell *cell = [tableView dequeueReusableCellWithIdentifier:identifer];
if (cell == nil) {
cell = [[[NSBundle mainBundle]loadNibNamed:@"ContactCell" owner:nil options:nil]lastObject];
}
*/
//
第二种cell从用的方法
ContactCell
*cell = [tableView dequeueReusableCellWithIdentifier:kContactCell
forIndexPath:indexPath];
cell.nameLabel.text
=
@"夏琳";
return cell;
}
storyboard可视化编程
1.
如果一个视图控制器有多个按钮点击之后都要跳转到同一个界面,此时使用视图在视图控制器之间建立的segue连线,不过要给这个segue加一个标示
如果只有一个按钮点击后,跳转到下一个页面,此时使用按钮和视图控制器之间的连线
实现button控件中的方法
2. - (IBAction)handlePush:(UIButton
*)sender {
/*
// self.storyboard获取当前视图控制器所在的storyboard(故事板),也就是mian.storyboard
// instantiateViewControllerWithIdentifier通过视图控制器的唯一标示获取视图控制器对象
DeatilViewController *deatilVC = [self.storyboard instantiateViewControllerWithIdentifier:@"aa"];
[self.navigationController pushViewController:deatilVC animated:YES];
*/
通过选择视图控制器之间的连线
segue,完成页面之间的跳转
[self
performSegueWithIdentifier:@"jj"
sender:nil];
}
- (void)prepareForSegue:(UIStoryboardSegue
*)segue sender:(id)sender {
//
获取segue起始端的视图控制器对象
RootViewController *rootVC = [segue
sourceViewController];
//
获取push过去后的视图控制器对象
DeatilViewController
*detailVC = [segue
destinationViewController];
//
把textField中的内容取出来复制给下一个界面的属性
detailVC.string
= rootVC.textField.text;
}
相关文章推荐
- 6款最知名的开源数据挖掘工具【翻译】
- vb学习笔记
- MFC主窗口出现之前弹出子窗口与子窗口交互问题
- Java中的菜单
- 菜鸟学JAVA之JMenu
- Storyboard全解析(一)
- Eclipse中可视化编译工具(WindowBuilder)
- 逻辑运算的化简
- Java学习疑惑(8)----可视化编程, 对Java中事件驱动模型的理解
- Java可视化编程,基于布局管理器的UI设计
- NetBeans IDE可视化java编程菜鸟笔记--用NetBeans创建一个Hello World项目
- iOS UI设计与动画制作
- Learnable Programming
- java可视化编程 eclipse安装windowBuilder插件
- java可视化编程-eclipse安装windowbuilder插件
- Blockly概述
- 分享 秦时明月人机大战黑白棋
- 简易可视化编程工具
- 【MFC入门】之一 标准控件在可视化编程中的应用之按钮控件
- IOS自动布局之Autoresizing