V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iOS 开发实用技术导航
NSHipster 中文版
http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
http://www.cocos2d-iphone.org/
CocoaPods
http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
http://code.google.com/mobile/analytics/
WWDC
https://developer.apple.com/wwdc/
Design Guides and Resources
https://developer.apple.com/design/
Transcripts of WWDC sessions
http://asciiwwdc.com
Cocoa with Love
http://cocoawithlove.com/
Cocoa Dev Central
http://cocoadevcentral.com/
NSHipster
http://nshipster.com/
Style Guides
Google Objective-C Style Guide
NYTimes Objective-C Style Guide
Useful Tools and Services
Charles Web Debugging Proxy
Smore
oukichi
V2EX  ›  iDev

对于 ios 老手来说,漂亮的界面是用 storyboard 做吗?还是直接 coding?

  •  
  •   oukichi · 2021-05-29 13:19:26 +08:00 · 9351 次点击
    这是一个创建于 1034 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我在学 ios,油管上看了一些视频,有人用 storyboard,有人直接 coding 。 想问问老手,你们的漂亮界面是如何实现出来的? 感谢回复。

    第 1 条附言  ·  2021-05-30 18:08:10 +08:00

    漂亮的界面重点是界面,而不是漂亮,各位的热情我接收到了,但请不要跑偏了哈哈。

    49 条回复    2021-07-07 11:36:30 +08:00
    JoJoJoJ
        1
    JoJoJoJ  
       2021-05-29 13:24:56 +08:00 via iPhone   ❤️ 5
    漂不漂亮和 sb 还是 coding 有啥关系?
    hheng101
        2
    hheng101  
       2021-05-29 13:50:31 +08:00
    都能做,大部分公司还是 coding 偏多
    xarthur
        3
    xarthur  
       2021-05-29 13:51:19 +08:00 via iPhone   ❤️ 1
    是设计出来的……
    还有不懂什么叫做直接 Coding,你是想说 Swift UI 吗?
    oukichi
        4
    oukichi  
    OP
       2021-05-29 13:56:53 +08:00
    @hheng101 感谢!
    oukichi
        5
    oukichi  
    OP
       2021-05-29 13:57:21 +08:00
    @JoJoJoJ 请仔细审题
    oukichi
        6
    oukichi  
    OP
       2021-05-29 13:58:02 +08:00
    @xarthur 直接 coding 的意思是直接在 controller 里面调用相关的类并直接设置属性来实现界面。
    typetraits
        7
    typetraits  
       2021-05-29 14:16:45 +08:00
    个人感觉 coding 比较好,storyboard 还得拖拽,太麻烦了;而 coding 我这一行写下去,UI 什么样我心里已经大概有数了
    oukichi
        8
    oukichi  
    OP
       2021-05-29 14:46:14 +08:00
    @typetraits 就像我们写 CSS 。我理解了。感谢大哥!
    360511404
        9
    360511404  
       2021-05-29 15:03:03 +08:00   ❤️ 1
    老手是融会贯通的,不会告诉你 storyboard 还是 coding
    两者各有优劣
    storyboard 本质也是 xml 文件,而且编译出来载入内存更快,苹果也用,还是提倡的方式
    用 coding 为了多人开发避免冲突
    你可以习惯一种,但两种方式都要会用
    linhongye
        10
    linhongye  
       2021-05-29 15:03:08 +08:00 via Android   ❤️ 2
    storyboard 已经没有后续支持了吧。 现在是 swiftui 了。教程看旧了?
    nieyujiang
        11
    nieyujiang  
       2021-05-29 15:09:06 +08:00   ❤️ 1
    storyboard 自己玩挺爽的.多人协作,就很酸爽.
    nicevar
        12
    nicevar  
       2021-05-29 15:31:52 +08:00   ❤️ 1
    storyboard 的本意是让 UI 设计师来做这一块,但是绝大多数情况都是让程序员来完成,所以它用起来真的不怎么样,很多公司都是 storyboard 还没出现的时候就在做 iOS 项目,对程序员来说跟 nib 没太大区别,如果连 nib 都不用 storyboard 也不会用了。
    Lin0936
        13
    Lin0936  
       2021-05-29 15:39:02 +08:00 via iPhone   ❤️ 1
    刚开始是 coding,然后用 storyboard,现在又回到了 coding 不过是用 snapkit
    iOCZ
        14
    iOCZ  
       2021-05-29 16:24:23 +08:00
    这个不是重点
    irytu
        15
    irytu  
       2021-05-29 16:32:58 +08:00 via iPhone
    关键看 design 水平 跟代码没啥关系
    oukichi
        16
    oukichi  
    OP
       2021-05-29 16:47:43 +08:00
    @linhongye 因为我一直不喜欢声明式开发,所以我从 swift ui 回退到了你说的“旧的”那种开发。MVC 那种。其实我写前端也不喜欢 react,更喜欢 angular 。于是……就是你说的,教程看旧了。
    oukichi
        17
    oukichi  
    OP
       2021-05-29 16:49:05 +08:00
    @Lin0936 你可太优秀了,幸好你回复了,让我知道了 snapKit 这个好东西,还有啥常用的吗?求推荐!
    Leonard
        18
    Leonard  
       2021-05-29 17:32:26 +08:00
    好不好看是看设计,不过我个人不喜欢用 storyboard,coding 感觉更自在一些。oc 用 masonry,swift 用 snapkit 。swiftUI 还没怎么用。
    chiaf
        19
    chiaf  
       2021-05-29 18:01:29 +08:00   ❤️ 1
    @oukichi 推荐一个 pinlayout,据说比 autolayout 性能高
    ooops
        20
    ooops  
       2021-05-29 18:25:07 +08:00 via iPhone
    界面漂不漂亮看 UI 设计,sb 和代码都能实现,没啥本质区别。你是想问大家都用哪种来实现?
    ciki
        21
    ciki  
       2021-05-29 20:46:47 +08:00
    swiftui 可以做出非常炫酷的 UI
    shanghai1998
        22
    shanghai1998  
       2021-05-29 21:56:30 +08:00   ❤️ 1
    如果不知道就选择直接 coding 吧
    4074
        23
    4074  
       2021-05-29 22:07:14 +08:00   ❤️ 1
    开始学的时候,也是跟着官方教程用 storyboard,拖来拖去很麻烦,还要在代码里进行关联。
    后面全换成 coding 了,不追求极致性能的话,coding 方便很多。
    Lin0936
        24
    Lin0936  
       2021-05-29 23:11:36 +08:00   ❤️ 1
    @oukichi 主要还是看 UI/UX 设计吧,硬要说画 UI 常用的话还有个 RxSwift 吧,还有偶尔用 lottie 显示些动画。
    no1xsyzy
        25
    no1xsyzy  
       2021-05-30 02:34:47 +08:00
    @JoJoJoJ 我怀疑这里的「漂亮的界面」跟见人就喊「美女」「帅哥」差不多
    catfan
        26
    catfan  
       2021-05-30 06:28:02 +08:00
    Storyboard 的重要特性是能比较直观且无需编译的情况下看到界面在不同设备、不同布局、不同语言、不同转向、不同界面模式(默认 /黑暗)下的大致样式,方便进行适配和预览。

    如果单纯手写界面,这部分的适配代码是非常复杂并且很难全部兼顾的,并且每次调整都需要编译后才能看到效果,开发效率可想而知。

    而且 Storyboard 可以帮助理清整个应用各个界面之间的逻辑,一些界面之间的跳转只需设定好就能无需编写代码就能很好地运作。

    简单来来说,Storyboard 可以大幅减少项目中那些界面设定、适配、跳转等的代码,从而让开发者更专注于应用逻辑的处理。

    当然,无论哪种方式,对于复杂的界面以及动画效果,还是需要手动编写的。
    WildCat
        27
    WildCat  
       2021-05-30 07:26:10 +08:00
    wupher
        28
    wupher  
       2021-05-30 08:35:42 +08:00
    大部分公司开发,都使用 coding 。storyboard 多个开发时那个配置文件有修改冲突问题。

    Apple App 大多使用 storyborad

    个人开发者看习惯了,用 storyboard 的也不少,因为出活快,也没有协同开发的问题。
    lujie2012
        29
    lujie2012  
       2021-05-30 09:09:22 +08:00
    ? 老手回答,漂亮的界面是 UI 小姐姐做出来的,不是开发同学做出来的。
    所以 coding 还是 storyboard 和 APP 的漂亮界面,动画效果没有任何关系,两者底层是用的一样的东西。两者都可以做出一摸摸一样的东西。
    差别在哪里?差别很大。
    新手怎么弄,新手 storyboard 先玩好吧,简单一点,之后你想办法吧 storybaord 的那个项目变成存代码的项目就是了。

    拿来吃饭,什么都要懂的。拿来自己玩,storyboard 你能玩好了,什么 APP 你也都能自己做。
    imkerberos
        30
    imkerberos  
       2021-05-30 09:12:29 +08:00
    masonry + snapkit < pinlayout + flexlayout
    Elethom
        31
    Elethom  
       2021-05-30 09:27:55 +08:00 via iPhone
    好不好看和用什么没关系,不过用 SB 的多半是不打算维护了。
    gggxxxx
        32
    gggxxxx  
       2021-05-30 10:45:26 +08:00
    那么多贬低 storyboard 的。。。。真是搞笑。
    几十年前计算机技术就在提所见即所得......那么多人捧纯 coding 图个啥?
    mxalbert1996
        33
    mxalbert1996  
       2021-05-30 11:11:44 +08:00 via Android   ❤️ 1
    @gggxxxx 因为 StoryBoard 的多人协作和版本控制做的实在是太烂了,你看有人问 Android UI 开发用 xml 还是纯代码么?
    iOCZ
        34
    iOCZ  
       2021-05-30 11:22:03 +08:00
    sb 的问题是不适合代码敲,xml 可以。sb 的源码很复杂。
    Cbdy
        35
    Cbdy  
       2021-05-30 11:28:49 +08:00
    漂不漂亮不是看设计师吗?
    Esioner
        36
    Esioner  
       2021-05-30 12:14:35 +08:00
    原来 Android,最近在看 iOS 的感觉还是 coding 写起来舒服点,storyboard 用起来卡卡的,而且写起来说不出来的不习惯,哈哈哈
    Eagleyes
        37
    Eagleyes  
       2021-05-30 12:49:58 +08:00
    @wupher Apple App 就没有冲突问题么?

    难道说 Apple App 都是一个人开发的?
    cornetCat
        38
    cornetCat  
       2021-05-30 15:22:53 +08:00
    sb 还是小项目用着舒服,大点的项目感觉不如纯 code 。复用也不够方便
    oukichi
        39
    oukichi  
    OP
       2021-05-30 18:06:09 +08:00
    @chiaf 我昨天看了 pinlayout 的文档,针不戳!
    Building
        40
    Building  
       2021-05-30 23:05:47 +08:00 via iPhone
    @gggxxxx 用 code 基本上写的时候脑子里就知道最终的大概效果了,就好像熟练的前端看到设计图脑子里自动就能翻译成 html 结构和 css 样式,所见即所得根本多此一举,就是给在行人看的,Storyboard 优势是场景,纯 UI 声明是 nib 文件,就是类 xml 一样的东西,如果只是简单的几个页面跳转用 Storyboard 就显得非常直观,Storyboard 这东西实际上和 UI 就没多大瓜葛。
    wupher
        41
    wupher  
       2021-05-31 09:02:06 +08:00
    @Eagleyes 这个我真不故道。不过,以前有人通过反向工程分析了 N 多个 App 的实现方式,就是为了解答你这个问题。你可以上网搜索一番。Apple App 其实两者都有,但 stroryboard 居多,有的还接近 100+ view 。

    Coding 也是有很多好处的,尤其是复用和拷贝代码。

    布局哪个更方便就是见仁见智了。
    Eagleyes
        42
    Eagleyes  
       2021-05-31 09:22:50 +08:00
    @wupher 那为什么 Apple 多人开发就用 stroryboard 就不会出现混乱的问题?

    是 Apple 有什么私有的解决办法还是大家开发的姿势不对?
    wupher
        43
    wupher  
       2021-05-31 10:19:27 +08:00
    @Eagleyes 这个我也不知道,你可以在 WWDC 上询问一下。

    我觉得其实更多的是开发习惯问题。coding 可能没有可视化那么方便,尤其在调参时的直观和方便。但是维护,分享,复用肯定强于 xib / storyboard 。
    Eagleyes
        44
    Eagleyes  
       2021-05-31 10:50:47 +08:00
    @wupher 我是觉得一个方法,尤其是吹的特别好的方法,语言,比如 Swift,Storyboard,如果官方自己都不用,(假如说 apple 仍然用 oc 来开发)那么可以断定这个新的东西就是个噱头,自己都不看好。

    反之,如果官方自己用的乐此不疲,那么大概率有前途
    phytry
        45
    phytry  
       2021-06-01 08:52:37 +08:00
    漂不漂亮是设计做的,开发只是实现而已。sb 相比 coding 更直观,而且做复杂页面的时候没那么难受,coding 主要是可控和复用性高。
    wiwby
        46
    wiwby  
       2021-06-01 16:17:33 +08:00
    这都 21 年了,还以为是 11 年吗,玩不转就是菜,还大把人觉得性能和协作不行,代码烂,设计能力差,用啥方式维护成本和复用性都挫

    这玩意儿能满足 98%的需求,节约 50%的时间,唯一的缺点就是学习成本大点,经验性要求高点
    CodingIran
        47
    CodingIran  
       2021-06-04 10:12:32 +08:00
    @wiwby IB

    “玩不转就是菜”——大部分情况不是用 IB 不是因为“不会”,而是“不愿意”,做好 code snippet 和封装,纯代码效率不会比 IB 差很多。但纯代码配合 frame 布局的性能却比 IB 高很多(尤其在 iOS12 以下的设备);另外纯代码对于控件封装和复用也比 IB 更有优势。你可以选择自己喜欢的 coding 方式,但不要轻易下“就是菜”的结论。

    “学习成本大?——难道不是纯代码的学习成本才大吗:使用 IB 通常可以忽略视图的生命周期,我认识很多 3.4 年经验的 iOS,连 sizeToFit, sizeThatFits:, layoutSubviews, intrinsicContentSize, didMoveToWindow, didMoveToSuperview.. 这些基本的方法都不懂正确的使用。
    一看到设计稿不思考着如何“优化性能”、“如何封装以方便复用”,而是直接打开 storyborad 或 xib 开始拖控件的话很难提高的。
    wiwby
        48
    wiwby  
       2021-06-07 10:41:25 +08:00
    @CodingIran 你说这些和 IB 没啥关系,你要追求极限的布局性能,那就原始 frame,连框架都不要用,菜的人用啥都一样烂,支持 IB 的都能封装,纯代码封装好骗骗小白阔以,你认识的三四年经验的可能是三四年 UI 工程师,不是合格的编码人员,任何科技手段只是工具,最重要的是人,设计这玩意儿是建筑上沿用出来的,有能力的人都是从设计着手,能力不行用啥都是一坨翔。
    jackiecao
        49
    jackiecao  
       2021-07-07 11:36:30 +08:00
    @oukichi 你的标题就是这个意思啊
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3907 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 10:29 · PVG 18:29 · LAX 03:29 · JFK 06:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.