草庐IT

ios - 基本自动布局 - 嵌套宽度和动态高度

coder 2024-01-17 原文

简单的目标,但它演示了自动布局让我头疼的情况。我想要一个宽度为 256pt 和一个基于布局的动态高度(我不必手动指定高度)的堆栈 View 。 它里面应该是一个大小为 64pt x 64pt 的 ImageView ,它也应该水平居中,并且距离父 View 的顶部有 8pt 的约束。请注意, ImageView 不是唯一的 subview ,因此必须动态调整堆栈 View 的高度。

Auto Layout 现在告诉我堆栈 View 的 256pt 宽度约束与图像的 64pt 宽度约束之间存在冲突,以及一些神秘的“leading = Image.leading”和“trailing = Image.trailing”冲突我什至无法删除或找到它。

我是否遗漏了有关自动布局的内容?我希望所有逻辑都包含在界面构建器中,因此不需要任何代码。

运行 Xcode 9.1

Layout image

最佳答案

没有什么可混淆的。 iOS 清楚地告诉你这个问题。

StackViews 根据子组件的大小(这称为隐式大小)获取大小,除非像您的情况那样手动覆盖它,即 256pt。

因为 stackView 只是水平或垂直堆叠的多个 subview 的容器,现在因为您只向其添加了一个 imageView,所以它添加了 leadingtrailing 约束这绝对有意义,因为您向 View 堆栈添加了一个 View ,现在 stackView 应该做什么?将 childView(在您的例子中是 imageView)拉伸(stretch)到它自己的大小。

但是后来你不允许它,因为你在 imageView 中添加了宽度约束,现在当它试图增加 imageView 的宽度时,imageView 的约束不允许它。

因此它提示有太多相互冲突的约束。就这些:)

some mysterious "leading = Image.leading" and "trailing = Image.trailing" conflict which I can't even delete nor find.

你不能删除它们,因为 imageView 是 stackView 中唯一的 View 。因为只有一个 subview 要堆叠,stackView 将从左侧(leading)开始到右侧(trailing)。因为现在 stackView 有自己的宽度,它会尝试更改 imageView 的宽度以反射(reflect)相同的宽度!但图像宽度限制阻止了它的发生。

你想通过将 imageView 添加到 stackView 来实现什么。如果stackView中只有一个view,添加stackView没有任何意义。重新考虑你在做什么。

最后,当stack view中只有一个childView时,添加水平居中没有任何意义(无论垂直/水平stackView)。

关于ios - 基本自动布局 - 嵌套宽度和动态高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47328741/

有关ios - 基本自动布局 - 嵌套宽度和动态高度的更多相关文章

  1. ruby-on-rails - 使用 Ruby on Rails 进行自动化测试 - 最佳实践 - 2

    很好奇,就使用ruby​​onrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提

  2. ruby-on-rails - Rails 编辑表单不显示嵌套项 - 2

    我得到了一个包含嵌套链接的表单。编辑时链接字段为空的问题。这是我的表格:Editingkategori{:action=>'update',:id=>@konkurrancer.id})do|f|%>'Trackingurl',:style=>'width:500;'%>'Editkonkurrence'%>|我的konkurrencer模型:has_one:link我的链接模型:classLink我的konkurrancer编辑操作:defedit@konkurrancer=Konkurrancer.find(params[:id])@konkurrancer.link_attrib

  3. ruby - 将散列转换为嵌套散列 - 2

    这道题是thisquestion的逆题.给定一个散列,每个键都有一个数组,例如{[:a,:b,:c]=>1,[:a,:b,:d]=>2,[:a,:e]=>3,[:f]=>4,}将其转换为嵌套哈希的最佳方法是什么{:a=>{:b=>{:c=>1,:d=>2},:e=>3,},:f=>4,} 最佳答案 这是一个迭代的解决方案,递归的解决方案留给读者作为练习:defconvert(h={})ret={}h.eachdo|k,v|node=retk[0..-2].each{|x|node[x]||={};node=node[x]}node[

  4. ruby - RuntimeError(自动加载常量 Apps 多线程时检测到循环依赖 - 2

    我收到这个错误:RuntimeError(自动加载常量Apps时检测到循环依赖当我使用多线程时。下面是我的代码。为什么会这样?我尝试多线程的原因是因为我正在编写一个HTML抓取应用程序。对Nokogiri::HTML(open())的调用是一个同步阻塞调用,需要1秒才能返回,我有100,000多个页面要访问,所以我试图运行多个线程来解决这个问题。有更好的方法吗?classToolsController0)app.website=array.join(',')putsapp.websiteelseapp.website="NONE"endapp.saveapps=Apps.order("

  5. ruby - 如何验证 IO.copy_stream 是否成功 - 2

    这里有一个很好的答案解释了如何在Ruby中下载文件而不将其加载到内存中:https://stackoverflow.com/a/29743394/4852737require'open-uri'download=open('http://example.com/image.png')IO.copy_stream(download,'~/image.png')我如何验证下载文件的IO.copy_stream调用是否真的成功——这意味着下载的文件与我打算下载的文件完全相同,而不是下载一半的损坏文件?documentation说IO.copy_stream返回它复制的字节数,但是当我还没有下

  6. Ruby——嵌套类和子类是一回事吗? - 2

    下面例子中的Nested和Child有什么区别?是否只是同一事物的不同语法?classParentclassNested...endendclassChild 最佳答案 不,它们是不同的。嵌套:Computer之外的“Processor”类只能作为Computer::Processor访问。嵌套为内部类(namespace)提供上下文。对于ruby​​解释器Computer和Computer::Processor只是两个独立的类。classComputerclassProcessor#Tocreateanobjectforthisc

  7. ruby - 模块嵌套代码风格偏好 - 2

    我的假设是moduleAmoduleBendend和moduleA::Bend是一样的。我能够从thisblog找到解决方案,thisSOthread和andthisSOthread.为什么以及什么时候应该更喜欢紧凑语法A::B而不是另一个,因为它显然有一个缺点?我有一种直觉,它可能与性能有关,因为在更多命名空间中查找常量需要更多计算。但是我无法通过对普通类进行基准测试来验证这一点。 最佳答案 这两种写作方法经常被混淆。首先要说的是,据我所知,没有可衡量的性能差异。(在下面的书面示例中不断查找)最明显的区别,可能也是最著名的,是你的

  8. Ruby 文件 IO 定界符? - 2

    我正在尝试解析一个文本文件,该文件每行包含可变数量的单词和数字,如下所示:foo4.500bar3.001.33foobar如何读取由空格而不是换行符分隔的文件?有什么方法可以设置File("file.txt").foreach方法以使用空格而不是换行符作为分隔符? 最佳答案 接受的答案将slurp文件,这可能是大文本文件的问题。更好的解决方案是IO.foreach.它是惯用的,将按字符流式传输文件:File.foreach(filename,""){|string|putsstring}包含“thisisanexample”结果的

  9. ruby-on-rails - 使用回形针的嵌套形式 - 2

    我有一个名为posts的模型,它有很多附件。附件模型使用回形针。我制作了一个用于创建附件的独立模型,效果很好,这是此处说明的View(https://github.com/thoughtbot/paperclip):@attachment,:html=>{:multipart=>true}do|form|%>posts中的嵌套表单如下所示:prohibitedthispostfrombeingsaved:@attachment,:html=>{:multipart=>true}do|at_form|%>附件记录已创建,但它是空的。文件未上传。同时,帖子已成功创建...有什么想法吗?

  10. ruby - nanoc 和多种布局 - 2

    是否可以为特定(或所有)项目使用多个布局?例如,我有几个项目,我想对其应用两种不同的布局。一个是绿色的,一个是蓝色的(但是)。我想将它们编译到我的输出目录中的两个不同文件夹中(例如v1和v2)。我一直在玩弄规则和编译block,但我不知道这是怎么回事。因为,每个项目在编译过程中只编译一次,我不能告诉nanoc第一次用layout1编译,第二次用layout2编译。我试过这样的东西,但它导致输出文件损坏。compile'*'doifitem.binary?#don’tfilterbinaryitemselsefilter:erblayout'layout1'layout'layout2'

随机推荐