【问题标题】:Make generic view that align subviews properly as added swift制作通用视图,在添加 swift 时正确对齐子视图
【发布时间】:2018-04-13 11:20:49
【问题描述】:

我一直在努力解决这个问题。在我的应用程序中,我的用户可以通过将社交网络地址添加到他们的帐户来宣传他们的频道。在 viewDidLoad() 期间,我下载用户数据并确定应该为相应帐户显示哪个社交网络按钮。所有不同的按钮,如 Facebook、Instagram、Twitter、Pinterest 添加网站应该并排,但是,如果用户没有输入特定的 URL,则不应显示相应的按钮。所以我正在寻找这样的行为:

如果只有 1 个按钮(fx 网站按钮),那么网站按钮应该在视图中居中。如果用户有两个按钮,那么视图应该围绕中心并排分布两个视图。第三,第四和第五个按钮依此类推。我想我可以使用 UIStackview 来添加第一个按钮并使其居中,但 UIStackView 会拉伸一个视图,如果我的 UIStackView 中有两个按钮,则它们没有围绕中心对齐,而是它们有很多间距。非常感谢任何知道如何实现这一点的人。

我想任何体验过这款游戏或想要直观地了解我的想法的人都可以将这款游戏与 Heartstone 相提并论。当一个仆从被放到板上时,它会与已经在那里的仆从对齐。

编辑* 为可见性添加图片:

试验: 我现在已经听从了您的建议,并将 stackview 设置为适当的对齐和分布,以及图像方面的适合度,包括整体约束。结果要好得多,但是间距很大,它们应该拥抱在一起,中心周围的间距很小,侧面的间距很大,请参阅img:

总体约束:

问候,

【问题讨论】:

  • 我得到了你想要做什么的总体信息,你能添加一些图片吗?
  • @AbdulKarim 我添加了一张我快速绘制的图片。对不起,糟糕的图形。但想法是,如果只显示一个 btn,它应该居中,如果两个 btn 应该有 10 个像素间距并以中心为中心一起居中。如果是 3 个 btns,那么中间应该完全居中,左右 btn 到中间一个 10 个像素,依此类推。
  • 您希望它在以下格式正确,以及您目前的获取方式
  • @AbdulKarim 我不确定你在问什么,抱歉。如果你问是否应该看起来像图片,那么是的:P
  • 检查所有图标的高度和宽度(即应该相等)并将 UIStackView 属性设置为对齐 - 填充,分布 - 均匀填充,并将图像内容模式设置为 - aspectFit 或根据您的中心方便

标签: ios swift layout uistackview


【解决方案1】:

使用 UIStackView 并设置“Equal Equally”属性可能会起作用。

【讨论】:

  • 感谢您的评论,但如果只有一个,这仍然会拉伸 btn
  • 为此使用自动布局约束。对 UIStackView 和对按钮的高度和宽度约束给予 allingment。它会调整的。
【解决方案2】:

可以通过以下方式实现:

  • 使用堆栈视图
  • 平均填充
  • 至少一项的宽度恒定
  • stackview 应该在容器中水平居中对齐,没有前后约束
  • stackview 应该有固定的底部约束

欢呼

【讨论】:

  • 我已尝试听从您的建议,尽管结果仍然不是我想要的,如果我做错了什么,您是否得到相同的结果。它们应该以中间为中心。
  • 抱歉它应该在容器中水平居中
  • 你好。感谢您的评论,我无法复制您的建议。我选择了一个普通的 UIView 并制作了一个算法,以使布局完美契合,不过花了几个小时来完善它。但尽管如此,我有未来使用的算法;)
猜你喜欢
  • 1970-01-01
  • 2016-02-04
  • 1970-01-01
  • 2011-10-26
  • 1970-01-01
  • 2014-12-23
  • 2014-09-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多