以编程方式添加到 UIStackView 时的 sizeToFit UIButton

sizeToFit UIButton when programmatically added to UIStackView

经过多方搜索我开始放弃

我有一个 iOS 应用程序 (swift),可以向用户询问一系列问题和答案。问题和答案是从 JSON 文件下载的。每页总是有 1 个问题,但答案数量各不相同。所以答案是将 UIButtons 添加到在 xib 中创建的 UIStackView。这是一个小问题。

如果我创建的答案超过 1 行(即其中有一个换行符),它将在 UIButton.titleLabel 中创建一个新行并扩展 UIButton 以适应。但是,如果答案很长并且超过 1 行,则 UIButton 不会扩展。我正确地为标签换行启用了换行,但是按钮似乎没有意识到它在 UIStackView 中的宽度限制,因此假设它可以显示 1 长行文本并相应地创建它的高度 - 即使我打电话给 ever trusty sizeToFit()!!!

我假设有一个简单的设置,例如 "contentWidth" 我错过了。

P.S。我不想计算大小并手动设置按钮的高度。我希望它也能与旋转一起工作,这当然会调整宽度

好吧,我从来没有找到使 Button 正确调整到它自己的 UILabel 大小的修复程序,它似乎经常看到文本能够适合一行并工作。

克服了 这个问题,用 UILabel 替换了我的 UIButton。然后 UILabel 有 addGestureRecognizer(UITapGestureRecognizer()),当然还有 userInteractionEnabled = true

这不是我想要的方式,但在 UIStackView 的下一次更新之前会让我的客户满意!