Apple 打死也不精简语法,就自己写了个 Swift 的 Auto Layout 语法糖 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
likers
V2EX    Swift

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

  •  
  •   likers Jan 14, 2016 4822 views
    This topic created in 3759 days ago, the information mentioned may be changed or developed.

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

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

    目前几个主要的问题是:

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

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

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

    5 replies    2016-01-14 21:28:42 +08:00
    1000copy
        1
    1000copy  
       Jan 14, 2016
    不错的探索。点赞下:)
    pheyer
        2
    pheyer  
       Jan 14, 2016
    OC 里有一个 Masonry , Swift 里不是有一个 SnapKit 吗?
    sablib
        3
    sablib  
       Jan 14, 2016
    Swift 不是有一个 Cartography 么?
    功能还挺多的。
    likers
        4
    likers  
    OP
       Jan 14, 2016
    @pheyer 然而 SnapKit 写起来感觉也还是有些麻烦,
    @sablib 谢谢啊!去研究研究 Cartography 怎么做的
    free9fw
        5
    free9fw  
       Jan 14, 2016
    SnapKit 挺好用的
    About     Help     Advertise     Blog     API     FAQ     Solana     3118 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 37ms UTC 00:17 PVG 08:17 LAX 17:17 JFK 20:17
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86