Background

我正在制作一个垂直标签,用于传统蒙古语文字.之前我只是旋转UILabel,但有一些性能问题和其他复杂的问题.现在我正在从头开始制作标签.然而,我需要垂直标签来告诉自动布局何时调整高度(基于字符串长度).

What I have read

我阅读了Intrinsic Content SizeViews with Intrinsic Content Size文档.不过,这些更多的是关于如何使用它,而不是如何在自定义视图中定义它.

搜索"自定义视图的ios固有内容大小"只会让我

堆栈内溢出.这个问题甚至不需要固有的内容大小,因为他们的视图只是标准视图的集合.

What I am trying

下面是我的答案.我想补充一点:;一对,这样其他人就不会像我使用搜索关键字那样花那么长时间找到答案.

推荐答案

设置自定义视图的固有内容大小可以让auto layout知道该视图希望有多大.要设置它,需要覆盖intrinsicContentSize.

override var intrinsicContentSize: CGSize {
   return CGSize(width: x, height: y)
}

然后打电话

invalidateIntrinsicContentSize()

只要自定义视图的固有内容大小发生变化,框架就应该更新.

Notes

Swift相关问答推荐

SwiftUI—如何识别单词并获取视觉中的位置

像WebSocket一样接收实时更新,但通过异步/等待或组合

如何在SwiftUI 4+(iOS 16+)中使用新的NavigationStack进行导航

找出touch 点的屏幕亮度

我如何在 swift 中的 viewdidload 之前进行委托?

为什么 SwiftUI 中 ForEach 的这个 Select 不起作用?

SwiftUI 从任务中安全更新状态变量

Swift Combine:如何在保留发布者结果顺序的同时进行收集?

用户输入以更改通过点击生成的形状大小

您可以在运行时访问 Picker 元素并更改它们的 colored颜色 吗

SwiftUI 中的计时器崩溃屏幕

我如何从 UIAlertController 导航到新屏幕(swiftUI)

在视图中设置所有变量

如何在 SwiftUI 中实现 PageView?

如何更改弹出框的大小

如何从一个可观察的数组创建一个可观察的数组?

在 Swift 中覆盖 UIScrollView 的委托属性(就像 UICollectionView 一样)

在 Swift 中子类化 NSObject - 初始化器的最佳实践

Void 函数中意外的非 Void 返回值 (Swift 2.0)

应用程序包不包含有效标识符