圆角 UIButton - 无法对齐文本

Posted

技术标签:

【中文标题】圆角 UIButton - 无法对齐文本【英文标题】:Rounded UIButton-cant align text 【发布时间】:2014-10-23 09:28:13 【问题描述】:

我有一个圆形的 UIButton(corner radius=width/2),我试图将该按钮的标题居中,使其位于圆的中心。不知何故,它不在中心,我已经尝试了一切,但没有成功。

我可以看到+号(它的标题)从中心向左和向上一点。 与字母相同 - 字母标题不居中:

UIButton *menu = [UIButton buttonWithType:UIButtonTypeCustom];
menu.contentHorizontalAlignment=UIControlContentHorizontalAlignmentCenter;
[menu setTitle:@"M" forState:UIControlStateNormal];
[menu setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
menu.contentHorizontalAlignment=UIControlContentHorizontalAlignmentCenter;
menu.contentVerticalAlignment=UIControlContentVerticalAlignmentCenter ;
menu.frame=CGRectMake(delta, 0, mwidth, mwidth);
menu.layer.cornerRadius=menu.frame.size.width/2.0;
menu.layer.borderWidth=1.0;

还尝试将titleLabel 对齐设置为居中但没有成功。

【问题讨论】:

【参考方案1】:

您可以尝试通过使用setTitleEdgeInsets 方法来采用标题的位置,并尝试使用不同的插图并选择最适合您的自定义的插图

【讨论】:

是的,这就是我刚刚所做的,它可以工作,我认为这是因为如果你有 1 个像素的边框,他会计算左边 1 个像素的中心......当它允许我时,我会接受你的答案。 Title Edge Insets 也可以通过故事板设置:D! 让它成为一个需要layer.masksToBounds = true的圆形UIButton,但这会导致标题不显示。您对如何规避它有什么建议吗? @zionpi 取决于您要实现的目标如果按钮需要被舍入并且对于标题来说太小那么也许您应该在按钮上放置一个标签来让事件通过?标签是否需要在按钮太小而无法填充文本?可能值得重新考虑设计 @JulianKról 感谢您的输入。在我的情况下,我需要在按钮下方的标题中心,但 roundtitle that center below the circle image 似乎无法同时实现。

以上是关于圆角 UIButton - 无法对齐文本的主要内容,如果未能解决你的问题,请参考以下文章

UIButton 圆角半径在 CustomClass 中无法正常工作

如何将 UIButton 文本与 UILabel 文本垂直对齐?

UIButton中的UIBezierPath圆角

iOS上如何让按钮(UIbutton)文本左对齐展示

如何制作UIButton的文本对齐中心?使用IB

如何在 iOS 中像 UITabBarItem 一样设计 UIButton?