【问题标题】:How to more easily "update all frames" in autolayout in Xcode7?如何在 Xcode 7 的自动布局中更轻松地“更新所有帧”?
【发布时间】:2015-09-18 15:43:42
【问题描述】:

“更新帧”调用在 Xcode 中通常是灰色的

我知道让它更新框架以匹配您的约束的唯一方法是,繁琐地选择您的最高级别视图,而不是(有时)您可以在菜单栏中找到“选定视图”->“更新框架” .此外,“所有视图”->“更新框架”似乎通常根本无法正常工作或以我无法理解的方式工作。

当然只有击键或按钮可以立即更新所有帧,以匹配任何新输入的约束(例如使用控制拖动创建的约束)。 p>


注意 .. 对于 2016 年,您可以使用这个非常方便的按钮,它至少会显示与您在菜单栏菜单中搜索时可以找到的相同的子菜单。

但是看起来(请参阅下面的带有 ZaBlanc 的 cmets)实际上可能存在 Xcode 错误,并且您不能将击键分配给“所有视图”项。 (你经常使用的那些。)

更糟糕的是……在 Xcode 8 中……

他们似乎 删除了“更新框架”选项 ... WTH

【问题讨论】:

  • 这需要自定义插件吗?

标签: xcode autolayout xcode7


【解决方案1】:

这很容易。转到首选项-> 键绑定。在顶部键入“更新帧”。你会看到两个出现。你会想要底部的那个(它将是没有分配键盘快捷键的那个。)

将其分配给 ⌘= 或您喜欢的任何其他内容。

生活改变了。

  • Xcode 8.3 适合所有阅读者。弹出菜单命令不再存在。 菜单栏 命令编辑器 -> 更新框架确实有效。但是有一个错误,它的默认键绑定不起作用。如果您添加自定义组合键,则该自定义组合键会起作用。

【讨论】:

  • 是的,上面的提示可以做到。
  • 我添加了另一个屏幕截图。希望对您有所帮助!
  • 改变了我的生活。我正在点击赏金,谢谢!
  • 出于好奇@zablanc - 现在在 Xcode 8.3 中,由于某种原因,默认击键根本不起作用。 (使用该菜单栏选项本身(编辑器 -> 更新框架)可以正常工作。)但是,如果我只是将键绑定更改为另一个(我使用 ctl-opt-cmd-F),它确实可以正常工作。
【解决方案2】:

AFAIK,更新所有帧没有击键,但这里有一个关键提示:

  • 如果您有错位的视图,请按文档大纲中的黄色箭头(画布左侧的视图树),在列表中的任何视图上按黄色三角形,然后选择更新框架并检查Apply to all views in container - 这个将更新所选视图控制器中所有放错位置的视图

另外,你可能已经知道了:

  • 您可以使用画布右下方的Add New Constraints 按钮添加新约束,然后选择“更新帧”选项。

  • 您可以通过单击鼠标并按住 Option+Shift 键来选择任何视图 - 这将显示所有视图的列表,与鼠标指针。之后,您可以在选定的错位视图上选择更新框架菜单项。

【讨论】:

  • 要更新单个视图,您可以点击 来更新该对象,但是要执行一组对象,您必须单击超级视图然后解析通过更新可以在编辑器选项卡中完成的框架或点击情节提要下方底部栏上的第四个选项来自动布局问题。
【解决方案3】:

和你一样,我认为通过选择它们并从 Xcode 菜单中选择那个无聊的选项来手动修复错位的视图非常烦人。在努力缩短修复布局问题的时间后,我不得不承认无法从命令行调用函数“Update Frames”。所以我最终这样做了:

  1. 打开 Xcode 警告和错误检查器窗口
  2. 使用关键字“frame for”过滤所有布局警告
  3. 单击警告以快速定位到错位的视图,然后按Command + Option + =

这是我所知道的最快的方式。请尝试一下!

您还可以找到更多详细信息HERE

【讨论】:

  • 不,它还在。上面的截图是用 Xcode 7 拍摄的! :)
  • 嗨 Ducky - Command Shift Equals 不适合我:我应该点击什么,然后使用该按键?谢谢你
  • 嗯,我真的很抱歉...... CommandOptionEqual 对我没有任何作用......也许版本已经改变或什么?尽管如此,还是要投赞成票!
  • 快捷键必须写在Xcode菜单上。选择错位的视图控制器后,您可以在以下位置轻松找到它:编辑器 -> 解决自动布局问题 -> 中的所有视图 -> 适当的操作(例如:更新框架)
  • 你知道,这太奇怪了..但这对我不起作用..我明白你现在在菜单上的意思了......按键组合不起作用! :-O 也许我没有“选择框架”对……我不知道!感谢您提请我注意...
猜你喜欢
  • 2019-06-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多