Storyboard

-Storyboard是iOS5的新特性,它会帮你节省构建用户界面的时间。
-如果你的app有很多个屏(screen),storyboards可以帮助减少导航代码。以前是每个view controller对应一个nib文件,现在你的app只需要一个 storyboard就可以包含所有的view controllers,以及它们只见的关联。
-优点:
[1] 使用storyboard你可以清晰的看到所有的screen,以及screen之间的关联关系;
[2] storyboard描述了screen之间的跳转关系这些跳转关系被称为”segues”(色鬼?),你只需要按住ctrl从一个view controller拖拽到另一个就可以创建segues。这会显著减少你的编码量;
[3] storyboard提供了prototype cells和static cells,使得处理table views更简单;
(个人理解:storyboard最主要的是在设计上使得界面转换关系更清晰,还有进一步强调了MVC模式,减少耦合)

-要使用storyboard,需要在创建项目时选中Use Storyboard(应该也可以创建完项目后手工添加,不过要做的工作多一些吧)。创建后的项目中不再包含 MainWindow.xib,而是代之以MainStoryboard.storyboard。
-storyboard中screen的官方术语为”scene”。而scene实际上就是一个view controller。以前你需要为每个view controller创建一个独立的nib,现在所有的nib都被结合成一个单独的storyboard。
-在iPhone上每次只能展示一个scene,而在iPad上可以同时显示多个,比如基于split-view的应用。
-启动app时,加载的story board是在***-Info.plist文件中,“Main nib file base name”字段描述的。一般是加载MainStoryboard.storyboard,并初始化第一个view controller,然后将其放入UIWindow对象中。整个过程不需要编写任何代码。
-由于story board中不再包含App Delegate对象,因此需要在main.m文件中包含如下代码(创建项目时会直接生成,不需要手工输入),UIApplicationMain
的最后一个参数指定了AppDelegate的类型。
#import

#import “AppDelegate.h”

int main(int argc, char *argv[])
{
@autoreleasepool {
return UIApplicationMain(argc, argv, nil,
NSStringFromClass([AppDelegate class]));
}
}

-打开MainStoryboard.storyboard,拖拽一个Tab Bar Controller到canvas(就是中间的空白,苹果很文艺,叫画布)。这会出现3个controller(一个Tab Bar Controller,2个View Controller,每个对应一个Tab页面,之间有箭头指引,就是segue),如果显示器小就看不全,可以双击画布的空白处,以缩小界面元素。注意:在缩小模式下是不可对视图做编辑的。

-要使自己指定的界面为app启动时的第一个界面,需要指定对应的scene的Initial Scene为选中Is Initial View Controller。对应的是window.rootViewController

-删除一个View Controller,并拖拽一个Table View Controller以替换之。选中此Controller,在菜单栏Editor\Embed In\Navigation Controller,这样会产生一个新的Navigation Controller,指向Table View Controller,并使其嵌入到Navigation Bar中。选中Tab Bar Controller,按Ctrl并拖拽到Navigation Controller,然后选择Relationship,这样就会创建两个scene之间的关联。
-双击Navigation Bar可以直接输入名字。
-Prototype cells,这个很好很强大!你可以直接在story board中对cell进行设计(过去只能使用系统提供的cell类型,或者自己编码实现)。首先要记得给你的prototype cell命名,选中prototype cell,然后在属性窗口Identifier中输入名称,后面在代码中会用到。
-定义Table View Controller的子类:PlayersViewController。并在story board中设置为Table View的controller。

-在NavigationBar上增加一个Bar Button Item,然后加一个Table View Controller,将其嵌入到Navigation Bar Controller(Editor\Embed In\Navigation Controller)中,之后会创建出一个Navigation Controller并导航到刚才的Table View Controller。
-实现:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
- (NSInteger)tableView:(UITableView *)tableView
numberOfRowsInSection:(NSInteger)section
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath

-设计自己的prototype cell,首先别忘了,给cell起名,然后设置其style为Custom。再之后就尽情的设计吧~如果调整了cell的高度,记得还要调整Table View中Row Height。为了能在代码中引用你设计的cell中的元素,要在属性窗口中为每个元素设置Tag,然后在代码中如下方式使用:
UILabel *gameLabel = (UILabel *)[cell viewWithTag:101];

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值