在水平堆栈视图(自动布局)中将文本与图像垂直居中 - iOS

Posted

技术标签:

【中文标题】在水平堆栈视图(自动布局)中将文本与图像垂直居中 - iOS【英文标题】:Vertically centering text with an image in a horiztonal stack view (AutoLayout) - iOS 【发布时间】:2017-10-19 16:33:23 【问题描述】:

我在水平堆栈视图中将文本垂直居中放置在图标旁边时遇到了一些问题。以下是一些事实:

1) 我创建一个视图来保存堆栈视图 - 添加约束

2) 我在该视图内放置了一个水平堆栈视图 - 添加宽度和高度约束,添加垂直中心约束,添加高度约束

3) 将图像和标签添加到水平堆栈。

4) 我把图片做成一定的宽度并匹配高度

5) 我不理会标签

6) 我选择堆栈视图并指定将对齐设置为居中

在一个新的视图控制器中,这很好用!一切都完全垂直对齐。但是在我创建的任何现有控制器中,它都不起作用!文本在图像中心上方几个点处呈现,而不是在顶部。

我能看到的唯一区别是新视图控制器与现有视图控制器,以及与我更复杂的布局相比的简单布局。

我没有自动布局错误,并且不认为重新创建所有视图控制器是一种选择。有人有什么想法吗?

【问题讨论】:

请发布您的代码。 @Connor - 感谢您的快速回复!不幸的是,这与代码无关。绝对零代码...另外:我不能真正发布我的项目,因为公司不允许。我无法发布示例,因为在我创建的带有新视图控制器的示例中,它始终有效!所以我很苦恼…… 【参考方案1】:

哇,所以我已经部分弄清楚了。它是我们用于应用的自定义字体!

这是主要区别。我所有的普通应用程序视图都继承自我为整个视图设置字体的基本视图。这就是为什么当我在新的视图控制器(不是从基类继承)中进行测试时它会起作用的原因。

如果您在使文本完全垂直居中时遇到问题,并且您认为自己做的一切都正确,请检查您的字体。

编码愉快...

【讨论】:

以上是关于在水平堆栈视图(自动布局)中将文本与图像垂直居中 - iOS的主要内容,如果未能解决你的问题,请参考以下文章

在情节提要中将视图水平居中并垂直放置在底部

以编程方式自动布局不垂直居中

边距:自动;不垂直居中 div [重复]

自我调整 UITableViewCell 变小

响应式文本在图像上居中对齐

在 LinearLayout 中将 TextView 调整为垂直居中(水平)