开发笔记 - storyboard的一些初级使用

简介: 开发笔记 - storyboard的一些初级使用

本来想写一些高大上的东西,例如运行时机制,以及关于上架方面的新的.想了好久,我认为自己的水平还处于UI学徒的汪洋大海中 ,开发张的很多很多问题,其实你只需要一个谷歌浏览器,提问的当很多都是手到擒来的.话说还是有很多人,学历高,开发中的问题也多,不善于总结.甚至只需要你百度一下,谷歌搜索就能解决的问题,还是拿到群里,各种提问,苦逼的是,回答的时候,回答者,除非自己遇见过的惊天大坑,还是要依赖谷歌来回答.算不算是一种讽刺? 好像话又离题了.我认为现在如果是初级程序员,完全不是面向对象编程,而是面向搜索引擎编程,只要get搜索的能力,那么%99.9999 的需求以及功能都是可以解决的.

为熟而已!

扯了这么多,还是拿一点最初级的知识.献给大家吧. 一来学习是为了分享,分享的同时也是提升,输出.现在已经不喜欢去copy一些技术文来糊弄读者,一是对自己的不尊重,而是对原创作者尊重.这些我是顿时领悟到的.只有自己写,自己输出才是自己的.不怕写的不好,写的好了自然就有人看,写的不好,给自己看~~~

一般人用布局两种StoreBoard跟纯代码.那种优劣?

玩不转StoreBoard的都喜欢用纯代码.不解释.

(1)StoreBoard优点:

Auto Layout,做适配很方便;

多语言很方便;

静态TableView,CollectionView极其方便;

最重要的是直观,结构清晰,一目了然!

冲突问题:storyboard一般只是用于展示页面布局,布局不是个经常变动的东西,如果需要修改,修改的次数也非常的少。一般在团队中专门约定几名负责人专门修改页面布局就可以了。如果真的需要很多人改,请拆分storyboard。

性能问题:性能的瓶颈真的在这里吗?有这些时间多多优化一下代码,多使用异步block的效果更为明显吧。

大型项目的问题:大型项目中细分storyboard不仅可以解决打开卡顿的问题,也会使产品线更为直观。

复用问题:storyboad的确不能复用,可复用的组件可以用NIB进行封装,然后引入storyboad。

(3)什么时候使用storyboard?

组织多种view的层级关系,也就是传说中的segue。使用一些列表或表格单元的模板的时候。能使用storyboard的情况下尽量用storyboard。

什么时候不建议使用storyboard?

动态或复杂布局,这时候可能需要用代码来计算相关view的位置。如果一个view已经用NIB或代码实现

(4)什么时候使用nib?

模态框(如登录提示什么的)可复用视图组件或模板

什么时候不推荐使用nib?

有动态内容的视图

不方便在IB中进行设计的试图

(5)什么时候使用代码?

纯代码好处就是灵活,接手项目的时候好改。缺点,很明显慢。

什么时候不推荐使用代码?

什么时候使用代码都是一个好方法,但不一定是最好的。

纯代码可以使用masonry,可视化编程使用AutoLayout

我自己的项目可以说是所有界面均有SB和XIB 组合而成.很多人说storyboard的跟XIB不好,实际是因为玩的不够溜而已

下面我来介绍一下storyboard 的几个常用的用法


image.png

上面这张图就是传说中的连线 ,segue 简称色鬼 你可以用它来传值,也可以用它来跳转控制器

- (IBAction)goAction:(id)sender

{

// 根据指定线的ID跳转到目标Vc

[self performSegueWithIdentifier:@"SendValue" sender:self];

}

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

// segue.identifier:获取连线的ID

if ([segue.identifier isEqualToString:@"SendValue"]) {

// segue.destinationViewController:获取连线时所指的界面(VC)

ReceiveViewController *receive = segue.destinationViewController;

receive.name = @"Garvey";

receive.age = 110;

// 这里不需要指定跳转了,因为在按扭的事件里已经有跳转的代码

// [self.navigationController pushViewController:receive animated:YES];

}

}


image.png

除此之外你还可以这样用


image.png

你可能不知道上面的图有什么卵用?


image.png

再来看一下方法内部的实现

image.png

你看谁说SB不好跳转控制器啥的.写个方法放在基类,只要保持规范,随便你跳跳跳!

在看下SB做布局


image.png


image.png

在这里,你可以直接给控件做布局, top left button right 上左下右

宽,高,自身比例

image.png

水平,垂直居中.看英文跟符号你就能知道意思了.

image.png

在这里你可以做相对布局了.

一般,我的做法是直接 父控件 做等宽高

然后MultiPlier 不是有一个1 吗?

这里就是你可以调整比例 从0 -1  

至于怎么算比例,例如 我想做一个view 大小100 并且在任何6显示正常 在5s 跟6S 相对根据比例来增大怎么做呢?

如果你直接写死宽度 100 跟高度100

那么恭喜你,在6是正常的.在5S就会看起来大了一点,因为机型跟分辨率高了.在6S就更小了.

是不是有这种情况.那么我用SB怎么做呢?先看分辨率机型图

iphone5屏幕尺寸320 x 568屏幕分辨率640x1136

iphone6屏幕尺寸375 x 667屏幕分辨率640x1334

iphone6Plus屏幕尺寸414 x 736屏幕分辨率1080x1920。

image.png

image.png


设置的宽度跟高度,都是跟View去做的等宽高.

我是以6的原型去参照. 那么它就会去算比例,在6s的时候, 高度就会变成屏幕高度 * (100/667.0)

宽度就会变成 屏幕宽度*(100/375)

你看这样他就会根据机型来觉得view的宽高,从而显示不同的宽高.是不是很灵活呢?

image.png

这个选项,决定了会不会参与编译.如果你不勾选,那么就不会参与编译.

image.png

简单点说就是automaticallyAdjustsScrollViewInsets根据按所在界面的status bar,navigationbar,与tabbar的高度,自动调整scrollview的 inset,设置为no,不让viewController调整,我们自己修改布局即可~

下面我还要花20000+ 的文字来描述SB 的好用之处.自己脑补去吧,任何技能你想要get记住,只能多谷歌,不要去百度.自己多去练习,真的想别人免费给你写文章文字来告诉你技能?只能告诉你想多了,哈哈哈.一切再好的文章不如亲手实操几遍来的快.


相关文章
|
4月前
|
前端开发 JavaScript 安全
中级前端知识进阶
【7月更文挑战第6天】深化前端技能涉及巩固HTML/CSS/JS基础,精通React/Vue/Angular等框架,理解前端工程化原理如Webpack和性能优化。扩展技术边界至跨平台开发、Web性能与安全,关注新趋势如PWA和Serverless。通过实战项目和社区分享加速成长。
46 1
|
6月前
|
IDE Java 开发工具
【Android 从入门到出门】第一章:Android开发技能入门指南
【Android 从入门到出门】第一章:Android开发技能入门指南
144 3
|
XML IDE 编译器
【C++】C++ 基础进阶【二】开发技巧
C++基础进阶,关于开发环境开发工具的一些便捷使用方式,提高生产力
169 0
【C++】C++ 基础进阶【二】开发技巧
|
Web App开发 算法
软件破解初级实例教程(附工具附图)
最近在群里总是看到很多新朋友在问: 1、“新手怎么学破解啊?”(这是标准的伸手党,baidu google其实很好用) 2、“哎呀XX大牛,我什么基础都没有啊我不会汇编,不会C更不会C++还不会…………总之高手会的我都不会,我能学么?”(明确的告诉你,你能!你不和唐僧一样罗嗦的话你一定能。
8187 0
C#编程-127:WPF初级入门
C#编程-127:WPF初级入门
C#编程-127:WPF初级入门
|
编解码 小程序 前端开发
小程序开发-第一章第五节从px到rpx-全栈工程师之路-中级篇
小程序开发-第一章第五节从px到rpx-全栈工程师之路-中级篇
137 0
小程序开发-第一章第五节从px到rpx-全栈工程师之路-中级篇
|
小程序
小程序开发-第二章第六节tabBar详细说明-全栈工程师之路-中级篇
小程序开发-第二章第六节tabBar详细说明-全栈工程师之路-中级篇
177 0
小程序开发-第二章第六节tabBar详细说明-全栈工程师之路-中级篇
|
JSON 小程序 API
小程序开发-第三章第二节下拉刷新,上拉加载-全栈工程师之路-中级篇
小程序开发-第三章第二节下拉刷新,上拉加载-全栈工程师之路-中级篇
127 0
小程序开发-第三章第二节下拉刷新,上拉加载-全栈工程师之路-中级篇
|
人工智能 算法 架构师
Android开发学习实例教程
Android开发学习实例教程
Android开发学习实例教程
|
安全 算法 5G
iOS开发经验总结,我的2019进阶之路!
4G改变了生活,抓住机会的人已经在这个社会有了立足之地,马上迎来5G的时代,你做好准备了吗!对于即将迎来的5G时代,无疑会是音视频的又一个高潮!那么作为程序员的我们,应该怎么样去迎接它呢~~ 改变带来的不是淘汰,而是机会! 底层进阶: iOS底层进阶成了当今iOS开发人员的必经之路。