V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
likers
V2EX  ›  Swift

Apple 打死也不精简语法,就自己写了个 Swift 的 Auto Layout 语法糖

  •  
  •   likers · 2016-01-14 12:31:17 +08:00 · 3962 次点击
    这是一个创建于 2996 天前的主题,其中的信息可能已经有所发展或是发生改变。

    用代码来做 Auto Layout 简直是要疯,自己写的吐血不说,还被面试官吐槽代码太多。。。

    然而苹果貌似是放弃纯代码 layout 了,不管是 Layout Anchors , NSLayoutConstraint 还是 Visual Format Language 都没有精简语法的诚意。于是就试着用操作符重载写了MathLayout,和大家分享一下,多多拍砖~

    目前几个主要的问题是:

    • 操作符重载所带来的冲突和歧义。我盯着键盘想到最好的方案也就是用“====”来代替“=”,虽然丑了点但是减少了很多冲突的可能。(但是找代码好方便呀有木有)

    • 四个方向用了最简洁的 top, left, bottom, right ,但同时也最容易有冲突。

    • 还没有实用,不知道能不能满足全部的 Auto Layout 需求。如果我有发现缺漏会慢慢补充进来。

    5 条回复    2016-01-14 21:28:42 +08:00
    1000copy
        1
    1000copy  
       2016-01-14 12:42:50 +08:00
    不错的探索。点赞下:)
    pheyer
        2
    pheyer  
       2016-01-14 13:09:03 +08:00
    OC 里有一个 Masonry , Swift 里不是有一个 SnapKit 吗?
    sablib
        3
    sablib  
       2016-01-14 13:20:23 +08:00
    Swift 不是有一个 Cartography 么?
    功能还挺多的。
    likers
        4
    likers  
    OP
       2016-01-14 13:33:53 +08:00
    @pheyer 然而 SnapKit 写起来感觉也还是有些麻烦,囧
    @sablib 谢谢啊!去研究研究 Cartography 怎么做的
    free9fw
        5
    free9fw  
       2016-01-14 21:28:42 +08:00
    SnapKit 挺好用的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5938 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 02:06 · PVG 10:06 · LAX 19:06 · JFK 22:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.