【问题标题】:Scaleable buttons in objective-cObjective-c 中的可缩放按钮
【发布时间】:2011-08-30 15:48:43
【问题描述】:

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

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

我发现了一些关于如何使用的东西

UItextfield

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

谁能给我一个简单的例子来说明我如何做到这一点?

谢谢!

【问题讨论】:

    标签: iphone objective-c ios xcode uibutton


    【解决方案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 的值作为字母的宽度,但您必须修改它以适合您的文本大小。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-22
        • 2015-01-23
        • 1970-01-01
        • 1970-01-01
        • 2012-10-05
        相关资源
        最近更新 更多