Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa touch 很难在UIButton上定位文本_Cocoa Touch - Fatal编程技术网

Cocoa touch 很难在UIButton上定位文本

Cocoa touch 很难在UIButton上定位文本,cocoa-touch,Cocoa Touch,我有一个带有圆形矩形按钮的ipad应用程序。我有两个问题 1-我无法使文本居中。我试过: menuButton.contentHorizontalAlignment = 0; 但它似乎不起作用。换行模式设置为换行 2-在另一个按钮上,文本为“使用e-Math”,连字符用作实际连字符,因此文本在一行上用“使用e-”包装,在第二行上用“数学”包装 非常感谢您对这些查询的帮助。UIButton如果您在运行时更改文本,则不会调整其标题标签的大小。您必须调用[button sizeToFit]或以其他方

我有一个带有圆形矩形按钮的ipad应用程序。我有两个问题

1-我无法使文本居中。我试过:

menuButton.contentHorizontalAlignment = 0;
但它似乎不起作用。换行模式设置为换行

2-在另一个按钮上,文本为“使用e-Math”,连字符用作实际连字符,因此文本在一行上用“使用e-”包装,在第二行上用“数学”包装


非常感谢您对这些查询的帮助。

UIButton
如果您在运行时更改文本,则不会调整其标题标签的大小。您必须调用
[button sizeToFit]
或以其他方式更改按钮的框架以调整标题标签的大小。您还可以对
UIButton
扩展
setTitle:forControlState:
方法进行子类化,以便在每次更改标题文本时更新标签的大小。

您可以对UIButton类进行子类化,并且可以将此方法添加到新子类按钮的draw rect中

[button titleLabel]drawTextInRect:frame];

框架相对于按钮边界的位置,可以根据需要正确定位标签文本

谢谢你的帮助,但我不明白我在这里该做什么。如果按钮名为菜单按钮,我如何使用您所说的内容将文本居中?抱歉,您如何对UIButton进行子分类?@richard griffiths说您有一个大小为60x30px的按钮,您可以将文本重新定位为[[button titleLabel]drawTextInRect:CGRectMake(10,5,self.view.bounds.size.width-20,self.view.bounds.size.height-10)];所以你在这里做的是从左边缘和右边缘开始标签10px,从上边缘和下边缘开始标签5px。再次,我很抱歉,但我在这里感到困惑。我想我不想改变文本的大小,只需将其居中即可。此外,我甚至在运行时更改文本时遇到问题,因为它说这些属性都是只读的。谢谢你的帮助。