iOS开发--Swift:布局库——SnapKit

如果你是只从事过iOS开发,觉得使用SnapKit(OC中的Masonry)很方便,甚至xib拖拉也不错。

可以说,这些都是iOS开发稀疏平常的日常。

但一旦你学过Flutter/Vue写过UI组件,那么iOS的UI编写真的是有种不忍直视的感觉,可以说是原始社会。

虽然隔壁Android的UI写起来也不会特别友好,但是还是比iOS好。

为啥,因为其他的UI编写基本上都可以既见既所得了,就算犯了错,边看边边调试就行了

只有iOS的需要编译调试。。。编译调试。。。编译调试。。。

而且其他家的UI编写基本上都是一脉相承,前端里面的CSS,在Flutter中可以找到一些命名相同的组件,我们来举个例子来说明一下隔壁构建UI的简单和同化:

下面这个UI如何Flutter、H5、iOS来实现:

如果你正在面试,或者正准备跳槽,不妨看看我精心总结的面试资料:https://gitee.com/Mcci7/i-oser 来获取一份详细的大厂面试资料 为你的跳槽加薪多一份保障

Flutter:

Wrap(
  children: model.children
      .map(
        (topic) => Padding(
          padding: EdgeInsets.all(3.0),
          child: Chip(
            materialTapTargetSize: MaterialTapTargetSize.shrinkWrap,
            key: ValueKey<String>(topic.name),
            backgroundColor: _getChipBgColor(topic.name),
            label: Text(
              topic.name,
              style: TextStyle(fontSize: 14.0),
            ),
          ),
        ),
      )
      .toList(),
);

H5:

<view class="flex-wrap" v-for="(item, index) in list" :key="index">
    <u-tag :text="item.name" :index="item.name" @click="click" />
</view>

<style scoped lang="scss">
.flex-wrap {
    display: flex;
    display: -webkit-flex;
    flex-wrap: wrap;
    width: auto;
    height: auto;
    margin: 16rpx;
}
</style>

iOS:

我需要的代码太多了,这里就贴出来了 T_T

Flutter和H5都是用的wrap作为布局思路,Flutter有wrap组件,而H5直接用flex-wrap的CSS就可以了,而iOS中却没有,虽说很多iOS中的组件Flutter和H5需要自定义,而iOS开箱即用。

不过现在这个情况是,就算设计稿与UI元素都和iOS靠拢,但实际上Flutter和H5在组件上已经有非常成熟的官方组件或者第三方,而iOS却没有。。。加上没有热重载。。。

不过虽然说iOS的布局不好用,甚至不好使,但是SnapKit至少给你一点点曙光,此话怎讲,下面我们来看看同一个布局,使用iOS原生的布局和SnapKit的布局代码量吧。

iOS原生布局 VS SnapKit布局

ios原生布局:

contentView.addSubview(imageView)
imageView.translatesAutoresizingMaskIntoConstraints = false

addConstraint(NSLayoutConstraint(item: imageView,
                                 attribute: .leading,
           
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值