Objective-c 中的可缩放按钮
Posted
技术标签:
【中文标题】Objective-c 中的可缩放按钮【英文标题】:Scaleable buttons in objective-c 【发布时间】:2011-08-30 15:48:43 【问题描述】:我想知道它是否可能,以及我该如何做以下事情,
我想要一个UIButton
,一个带有一种颜色的简单圆形按钮,但我希望它的宽度可以根据它内部的UILabel
进行缩放。
我发现了一些关于如何使用的东西
UItextfield
并使用它拥有的.leftView
和.rightView
属性
谁能给我一个简单的例子来说明我如何做到这一点?
谢谢!
【问题讨论】:
【参考方案1】:您可以通过执行以下操作在 UILabel 中找到 NSString 的大小:
CGSize size=[uibutton.titlelabel.text sizeWithFont:[UIFont fontWithName:@"Helvetica" size:fontSize] forWidth:uibutton.titlelabel.frame.size.width lineBreakMode:UILineBreakModeCharacterWrap];
然后使用 size.width
和 size.height
属性设置 uilabel 和/或 uibutton 的框架。
这只是一个示例,您需要根据标签的设置或偏好调整 UIFont 属性。
【讨论】:
【参考方案2】:我假设 UILabel 的文本是动态的,所以你不能只弄清楚尺寸并正常添加它们吗?
试试这个:
-(void)setLabelText:(NSString*)string
int length = string.length;
myLabel.frame = CGRectMake(x, y, 5*length+5, height);
buttonContainingLabel.frame = CGRectMake(x, y, 25+5*length, height);
此方法假定您可能没有使用等宽字体。尽管如此,字符宽度的差异可能不会构成任何有意义的大小差异,因为您不是在按钮中写小说。我在这里使用 5 px 的值作为字母的宽度,但您必须修改它以适合您的文本大小。
【讨论】:
以上是关于Objective-c 中的可缩放按钮的主要内容,如果未能解决你的问题,请参考以下文章