一天一点xib:7再聊SB

引言

我们再来聊聊SB

添加tableHeaderView和tableFooterVie

是的,没有听错,不用代码,“拖”出header于footer,其实很简单,选中tablView,在控件中找到View拖到tableView上,往最上方拖动,知道看到左右有两个圈的时候松手,这个View就是tableHeaderView了,同理,往最下方拖,就是tableFooterView。

LaunchScreen.storyboard

从iOS8开始iPhone多了4.7"和5.5"的两种设备,这使得适配更加复杂,特别是设置启动图,如果考虑到横竖屏的话,要做好多张图,最重要的是,启动图是最占体积的东西,为了更好、更方面的配置启动图,LaunchScreen.storyboard出现了,简单来说,启动的时候会加载这个SB文件,我们可以同过它更方便的设置启动图,可以用auto layout减少启动图数量的使用,但此功能只支持iOS8及其以上的系统。
那么问题来了,我要想适配更低的系统怎么办?答:不用。
如何禁止该功能?

size classes

size classes也是iOS8的新功能,.xib文件也是可以使用的,但大部分情况还是基于SB来使用,从xcode6开始我们新建的xib或SB文件中对应的View变成了正方形,而且下方显示"wAny hAny",点击后发现是可以选择的,选择不同的情况,View又变成了不同的形状,这就是size classes。简单的理解:size classes就是对设备的屏幕尺寸进行了抽象,宽高都分别用Regular、Compact来表示,我们其实不用太在意名称,只知道,以后不同的设备或者不同的状态(横竖屏)可以由这种描述来表示即可,具体的表示如下:

iPhone4S,iPhone5/5s,iPhone6,iPhone6s
竖屏:(w:Compact h:Regular)
横屏:(w:Compact h:Compact)
iPhone6P、iPhone6sP
竖屏:(w:Compact h:Regular)
横屏:(w:Regular h:Compact)

iPad
竖屏:(w:Regular h:Regular)
横屏:(w:Regular h:Regular)

由此我们可以看出,虽然把屏幕抽象了,但是用Regular、Compact并不能标识出各种不同的设备,竖屏情况下,所有iPhone用这种抽象表示是一样的(w:Compact h:Regular) ,所以:如果我们不适配横屏,或者iPad,只做竖屏iPhone显示的话,size classes并没有什么用,我个人认为目前的size classes应用面还是很窄的。

如果我们适配横屏,或iPad应该怎么做?
因为横屏后或者设备是iPad,那么size classes这种描述就会发生改变,而一旦描述发生改变,我们就能根据不同描述,做不同的布局,例如:我们在w:Compact h:Regular的情况下向View里拖了一个label,此时我们改变size classes为w:Regular h:Regular,你会发现该label不显示了,也就是说你在w:Compact h:Regular的情况下显示的label只在该情况下显示,这样就可以针对不同类型的描述,设置不同的UI布局了,除此之外,还可以给控件添加适配不同类型的描述。开启size classes功能后,选中控件的属性标签会发现,有些属性前有“+”的标志,点击这个标志就可以给这个控件的这个属性添加不同类型的描述了。

Storyboard Entry Point

如果我们用xcode6或者更高版本的xcode创建工程的话,你会发现自动就有了一个Main.storyboard

application:didFinishLaunchingWithOptions:中没有一行代码运行就没有问题,并不像之前那样,要创建window,指定rootViewController,这些是如何实现的?

xcode自动配置了一个SB文件,而以上的这一切都有xcode自动帮我们完成了。

那么问题来了:一个SB是可以对应多个VC的,他选哪个VC作为window的rootViewController?答案是Storyboard Entry Point,这个东西就是用来指定那个作为rootViewController的,也就是说,xcode会找到表示为Storyboard Entry Point的那个VC加载它成为rootViewController,而以后的跳转就由我们之前介绍的方式:

SecVC *secVC = [[UIStoryboard storyboardWithName:@"Demo" bundle:[NSBundle mainBundle]] instantiateViewControllerWithIdentifier:@"SecVC"];
[self.navigationController pushViewController:SecVC animated:YES];

或者之前说过的segue的方式进行了。

那么如何来指定Storyboard Entry Point?很简单

勾选就是设置了Storyboard Entry Point,设置了Storyboard Entry Point的VC会有一个向右的箭头指向它,注意你在Main Interface里选的SB文件中一定要有VC勾选了这个,不然xcode是不知道如何设置rootViewController的,你不用担心多选的问题,你如果选择一个新的VC,旧的那个VC就自然没有了Storyboard Entry Point,但是如果你又取消了勾选那么旧的VC并不会自动又添加Storyboard Entry Point的,要小心。

总结

xib与SB其实还有很多功能等着我们去学习、实践呢,之前介绍的这些都是大家在工作中最长使用的,下次讲讲一些高冷用法。

欢迎大家和我交流沟通,若文章中有错误和纰漏,恳请指正,谢谢。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,117评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,328评论 1 293
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,839评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,007评论 0 206
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,384评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,629评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,880评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,593评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,313评论 1 243
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,575评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,066评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,392评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,052评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,082评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,844评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,662评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,575评论 2 270

推荐阅读更多精彩内容