objective-c中的可伸缩按钮

时间:2011-08-30 15:48:43

标签: iphone objective-c ios xcode uibutton

我想知道它是否可能,以及我如何做以下事情,

我想要一个UIButton,一个带有一种颜色的简单圆形按钮,但我希​​望它的宽度可以根据其内部的UILabel进行缩放。

我找到了一些谈论如何使用

的事情

UItextfield

并使用其拥有的.leftView.rightView属性

有人能给我一个简单的例子,告诉我如何做到这一点吗?

谢谢!

2 个答案:

答案 0 :(得分:2)

您可以通过以下方式找到UILabel中NSString的大小:

CGSize size=[uibutton.titlelabel.text sizeWithFont:[UIFont fontWithName:@"Helvetica" size:fontSize] forWidth:uibutton.titlelabel.frame.size.width lineBreakMode:UILineBreakModeCharacterWrap];

然后使用此size.widthsize.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的值作为字母的宽度,但你必须修改它以适合你的文字大小。