用 SnapKit 构建堆叠视图的好方法是啥

Posted

技术标签:

【中文标题】用 SnapKit 构建堆叠视图的好方法是啥【英文标题】:What's a good approach to build stacked views with SnapKit用 SnapKit 构建堆叠视图的好方法是什么 【发布时间】:2016-04-01 18:34:16 【问题描述】:

我想做的是为像这样堆叠的视图构建约束,如果它是使用可视格式语言构建的。

"H:|-[title]-[toggle]-|"

使用 SnapKit 执行此操作的最佳方法是什么?

我现在正在这样做,但有点难以理解,因为这里的堆栈设置分散在两个闭包中。

title.snp_makeConstraints  make in
  make.left.equalTo(superView)
  make.right.equalTo(toggle.left)


toggle.snp_makeConstraints  make in
  make.right.equalTo(toggle.superView)

【问题讨论】:

【参考方案1】:

这个答案可能有点离题,因为它不是特定于 SnapKit,但使用 MarkupKit(我是项目的作者)很容易做到这一点:

<LMRowView>
    <UIView id="title"/>
    <UIView id="toggle"/>
</LMRowView>

在内部,LMRowView 创建的约束类似于您的 VFL 示例 (H:|-[title]-[toggle]-|) 生成的约束。

【讨论】:

以上是关于用 SnapKit 构建堆叠视图的好方法是啥的主要内容,如果未能解决你的问题,请参考以下文章

测试自定义视图的 onMeasure/onLayout/onDraw 方法的好方法是啥?

设计和构建具有大量重复任务的任务调度系统的好方法是啥?

在表/集合视图控制器及其关联的 diffable 数据源子类之间共享数据模型的好方法是啥?

将 SwiftUI 警报或操作表绑定到值类型模型属性的可选性(当属性为 nil 时显示视图)的好方法是啥?

用 PHP/MySQL 封装数据访问的好方法是啥?

用户更改密码时调用哪个 Windows API?挂钩这个 API 的好方法是啥?