我想知道它是否可能,以及我如何做以下事情,
我想要一个UIButton
,一个带有一种颜色的简单圆形按钮,但我希望它的宽度可以根据其内部的UILabel
进行缩放。
我找到了一些谈论如何使用
的事情 UItextfield
并使用其拥有的.leftView
和.rightView
属性
有人能给我一个简单的例子,告诉我如何做到这一点吗?
谢谢!
答案 0 :(得分:2)
您可以通过以下方式找到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属性。
答案 1 :(得分:0)
我假设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的值作为字母的宽度,但你必须修改它以适合你的文字大小。