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.widthsize.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 中的可缩放按钮的主要内容,如果未能解决你的问题,请参考以下文章

易于使用的可缩放和可平移的 GUI? [关闭]

可缩放时间轴和录像片段选择器的实现

在IOS中创建可缩放视图[关闭]

SVG(可缩放矢量图形)

围绕其中心旋转可缩放和翻译的 SVG 元素

D3 或 Rickshaw 中的可缩放、Google-Finance 风格的时间序列图? [关闭]