有啥方法可以改变 UIStackView 中 UITextView 的行距/边距/填充?

Posted

技术标签:

【中文标题】有啥方法可以改变 UIStackView 中 UITextView 的行距/边距/填充?【英文标题】:Is there any way to alter line spacing/margins/padding for a UITextView inside a UIStackView?有什么方法可以改变 UIStackView 中 UITextView 的行距/边距/填充? 【发布时间】:2016-12-18 22:17:19 【问题描述】:

所以我有一个原型细胞。

这是一个带有多个按钮的水平堆栈视图,以及作为最右侧子视图的文本视图。

我的问题是文本视图的文本太高了,这使得两行可以适应单元格的高度,而不仅仅是一行。但是我需要将字体大小保持在这个值,所以我不能增加它并以这种方式实现每单元格一行。

所以我需要以某种方式制作行距/边距/等。对于文本视图来说更大,这样当其中只有一行文本时,文本将在单元格中居中。或一些近似值,例如可能在文本视图本身周围设置边距。

但我似乎找不到任何方法来做到这一点。

我尝试为文本视图设置约束,但这只是以某种方式使整个堆栈视图消失。我尝试进入文本视图的大小检查器并设置显式布局边距,但 Xcode 完全崩溃了,所以我认为这可能是不允许的。

任何了解 UITextViews 的人都可以分享一些见解吗?

【问题讨论】:

【参考方案1】:

使用 UITextField 并将高度约束设置为大于等于优先级 250 的值。

【讨论】:

我无法使用 UITextField。我需要使用 UITextView 以便输入到任何给定表格单元格的文本可以占用多行。除非我对 UITextField 功能有严重误解?【参考方案2】:

经过进一步研究和测试,这似乎是在文本视图中为文本设置插图的最佳方式:

cellField.textContainerInset = UIEdgeInsetsMake(10.0, 0.0, 10.0, 0.0)

可以通过 UITextView 的 Identity Inspector 选项卡中的 Storyboard 设置相同的内容,方法是添加类型为“Rect”的“textContainerInset”运行时属性并设置所需的值。

【讨论】:

以上是关于有啥方法可以改变 UIStackView 中 UITextView 的行距/边距/填充?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 UIStackView 按比例调整大小?

UIStackView不改变宽度

在 kendo-ui 网格中显示/隐藏列后,有啥方法可以自动调整网格列宽?

有啥方法可以停止 WPF 的 UI 窗口实例

UIStackView 不改变宽度

检测 UIStackView 间距中的点击(项目之间)