【问题标题】:Button with varying localized title with auto layout具有不同本地化标题和自动布局的按钮
【发布时间】:2015-11-19 05:56:48
【问题描述】:

我正在考虑尝试在现有应用上使用自动布局。该界面在主窗口上有一个按钮。该按钮会根据应用程序的状态更改其标题。我打算本地化应用程序。

由于自动布局不知道(在 NIB 中)按钮将采用的各种标题的长度,我如何保证按钮在每个本地化中的大小都适合每个本地化中最长的标题?

实现此目的的正确方法是什么?非常感谢。

【问题讨论】:

  • 能否在此处添加布局截图。
  • 我还没有实现自动布局约束。完成后,如果我仍然需要帮助,我会确保发布布局的屏幕截图。
  • 当然是瓦吉尔。将在您需要时帮助您进行自动布局。

标签: macos cocoa xcode6 autolayout nsbutton


【解决方案1】:

你不需要改变太多。您只需添加任何您添加的对齐约束。现在给它宽度和高度约束,并使它们大于等于您想要的最小值。看这个。

我添加了中心水平和垂直对齐。这可以更改为任何。现在宽度大于等于 42.0 并且高度大于等于 21.0 。现在,如果您只是更改按钮的文本,那么它将据此增加其高度和宽度。您只需要在更改文本后调用此行。

[self.view layoutIfNeeded];

现在您可能想限制宽度然后增加高度。这是解决方案。你给它的宽度小于等于最大宽度,它不会增加宽度超过那个。看这里。

这里我的最大宽度是 200.0。但是请确保如果您在 iOS 中添加这些布局约束并且它是 UILabel 则 Lines 为 0,如果它是 UIButton 则 Line BreakWord WrapCharacter Wrap,但在 OS X 中增加 NSButton 的高度取决于您的按钮类型。

【讨论】:

  • 感谢您,Mahesh,您的详尽回复。根据您的回答,我推断按钮将实时调整大小,因为我在运行时以编程方式更改按钮的标题。现在我很好奇,如果窗口上的控件水平地相互邻接(在我的界面中它们确实如此),窗口是否也会调整自身大小以适应展开的按钮大小?再次感谢您的帮助。
  • Welcome.... 如果您需要根据控件的文本调整窗口大小,那么您只需要删除窗口的调整大小约束并分配前导,尾随,顶部和底部根据您从控件到其父视图的要求,无论您想要调整大小,可能是一个窗口或任何东西,它也会被调整大小。
【解决方案2】:

如果你给你的按钮设置了约束,只要去掉它的固定宽度约束,按钮就会自动适应文本的宽度。

【讨论】:

  • 尝试添加示例代码,这将有助于用户更好地理解解决方案。
  • 感谢@Rudra 为您指明方向,我会注意的。
猜你喜欢
  • 2017-07-22
  • 2014-11-04
  • 1970-01-01
  • 2023-04-04
  • 2021-12-23
  • 2011-01-20
  • 2014-06-11
  • 1970-01-01
  • 2020-06-13
相关资源
最近更新 更多