首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS: AutoLayout一个动态的项目数

iOS: AutoLayout一个动态的项目数
EN

Stack Overflow用户
提问于 2018-01-16 09:09:01
回答 1查看 35关注 0票数 0

我正在尝试重新创建下面的视图。对我来说,困难在于其中一些元素将有不同数量的实例。

  • 第一个项目是一个多行可变标记的UILabel。总会有这样的一件事的。
  • UIImageView。这可以是零项或一项。
  • UIButton 0或更多(至少3-4).

如何做到这一点?

实现这一目标的最佳做法是什么?我有一个使用UITableView的想法,只需将每个元素放在一个表视图单元格中。但这感觉有点麻烦的解决方案。特别是因为我必须删除表的默认样式(边框和填充)。

另一种解决方案是可能使用只有一列的UICollectionView。

第三种解决方案是在我所拥有的自动收费解决方案的基础上,通过大量的if语句和for-循环来实现它。这似乎是个糟糕的解决方案。

,那么我如何实现这一点(使用最佳实践)?,并且通常情况下,将UITableView用于纯布局目的是一个不好的主意吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-16 09:13:07

创建一个UIStackView,并在其中为每一个具有零或多个实例的项目创建另一个

当您想要附加时添加一个按钮到按钮中,stackView使用如下

代码语言:javascript
复制
btnsStackView.addArrangedSubview(btn)

UILabels和UIImageViews也一样

检查一下它可能会有帮助

代码语言:javascript
复制
   for i in 0...5
    {
        let headerView:UIView = UIView(frame: CGRect(x: 0, y: 0, width: self.view.bounds.size.width, height: self.view.bounds.size.height))
       if(i % 2 == 0)
       {
         headerView.backgroundColor = UIColor.blue
        }
        else
       {
          headerView.backgroundColor = UIColor.yellow
        }

        self.stttq.addArrangedSubview(headerView)

    }


    let headerView:UIView = UIView(frame: CGRect(x: 0, y: 0, width: self.view.bounds.size.width, height: self.view.bounds.size.height))

    headerView.backgroundColor = UIColor.black

    self.stttq.insertArrangedSubview(headerView , at:0)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48277579

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档