繁体   English   中英

如何设置UIButton titlelabel自上而下

[英]How to set UIButton titlelabel topdown

想知道如何在UIButton标题标签中自上而下设置文本。

文字是“按我”

想要展示

"
p
r
e
s
s

m
e
"

我做到了

CGAffineTransform newTransform = CGAffineTransformMakeRotation(90 * (M_PI / 180));
    self.activeButton.transform = newTransform;

但是它只改变了按钮的方向,没有改变文字

将文本旋转为垂直不同于将每个字母写在单独的行上,这是我从您的问题中收集到的意图。

为此,您实际上需要将每个字母写在单独的一行上! 您可以通过按住Alt / Option的同时在Interface Builder的文本字段中按Enter来在UIButton文本中创建新行。 请注意,这必须是“实用工具”面板中的text字段属性,如果要通过双击按钮编辑文本,则不能添加新行。

完成此操作后,将“换行符”模式更改为“字符换行”或“自动换行”,以使其显示多行。

编辑:我意识到您可能正在尝试使用代码中的按钮,因此我写了这篇文章,应该将常规按钮的文本转换为垂直方向,逐个字母地隔开:

// Create a temporary NSString to store the new formatted text string
// Set it to the first character so we can have a simple loop from the second to the last character
NSString *newText = [NSString stringWithFormat:@"%C",[button.titleLabel.text characterAtIndex:0]];
for(int i=1;i<button.titleLabel.text.length;i++) {
    // Format newText to include a newline and then the next character of the original string
    newText = [NSString stringWithFormat:@"%@\n%C",newText,[button.titleLabel.text characterAtIndex:i]];
}
// We must change the word wrap mode of the button in order for text to display across multiple lines.
button.titleLabel.lineBreakMode = NSLineBreakByCharWrapping;
// .. and for an unknown reason, the text alignment needs to be reset. Replace this if you use something other than center alignment.
button.titleLabel.textAlignment = NSTextAlignmentCenter;
// newText now contains the properly formatted text string, so we can set this as the button label
[button setTitle:newText forState:UIControlStateNormal];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM