带有空字符串的 iOS UILabel 零高度

标签 ios uilabel ios11

我正在使用基于约束的布局。我有一些垂直堆叠的布局,例如:

顶级标签

错误标签

其他控制

使用约束,我将每个之间的垂直间距设置为 10。问题在于没有错误状态时。在这种情况下,我设置了 UILabel.text = ""。当我这样做时,它会将 OTHER CONTROL 向上移动。我不希望发生这种情况。我希望 errorLabel 的高度与一行文本相同,而不管我在其中放置了多少个字符。有没有一种优雅的方式来做到这一点?

我考虑过的一些解决方法包括:

1) 设置一个填充标签(例如XXX),然后使用alpha/color使标签消失。这让我编写的代码比将 errorLabel 设置为空字符串要多。

2) 约束errorLabel的高度。这在恒定高度和我设置的字体大小之间创建了一个不变性(换句话说,如果我想调整字体高度,我必须记住调整硬编码高度)。

VerticalStackView 不是一个选项,因为我对整个 UI 有一些其他限制。

最佳答案

添加一串“”给标签一个固有的高度。

关于带有空字符串的 iOS UILabel 零高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49991337/

相关文章:

ios - 如果太高,使用自动布局调整距水平中心的垂直位置

ios - iOS 11/Xcode 9.0 中的 SFSafariViewController 空白

ios - 大小适合 : is returning different Values iOS 5 and iOS 6

ios - UILabel动态高度问题

c# - Xamarin.iOS 中带有填充的 UILabel?

ipad - iOS 11 UIWebView 下拉菜单在 iPad 上完全损坏 - UIPopoverController

swift - 带有 NavigationBar LargeTitle 和 SearchController 消失的 iOS 11 UIRefreshControl

ios - 合并中的音频不起作用

ios - 如何在 iphone 中调试我的 ionic 应用程序(包括 cordova)?

ios - 如何使用 AWS iOS SDK v2 将 UIImage 上传到 S3