iphone - 减小第三行的 UIButton 标签字体大小

标签 iphone objective-c uibutton ios7 uilabel

我有一个按钮,其中包含更改文本。

我希望如果按钮文本进入第三行,它应该将其字体减小到minimumScaleFactor。 我正在使用这段代码

self.option1Button.titleLabel.minimumScaleFactor = .7;
self.option1Button.titleLabel.numberOfLines = 2;
self.option1Button.titleLabel.adjustsFontSizeToFitWidth = TRUE;

但这不起作用。当文本到达第三行时,它不会改变字体大小。

最佳答案

adjustToFit 仅适用于单行标签。

尝试做this :

//Create a string with the text we want to display.
self.ourText = @"This is your variable-length string. Assign it any way you want!";

/* This is where we define the ideal font that the Label wants to use.
Use the font you want to use and the largest font size you want to use. */
UIFont *font = [UIFont fontWithName:@"Marker Felt" size:28];

int i;
/* Time to calculate the needed font size.
This for loop starts at the largest font size, and decreases by two point sizes (i=i-2)
Until it either hits a size that will fit or hits the minimum size we want to allow (i > 10) */
for(i = 28; i > 10; i=i-2) {
    // Set the new font size.
    font = [font fontWithSize:i];
    // You can log the size you're trying: NSLog(@"Trying size: %u", i);

    /* This step is important: We make a constraint box 
    using only the fixed WIDTH of the UILabel. The height will
    be checked later. */ 
    CGSize constraintSize = CGSizeMake(260.0f, MAXFLOAT);

    // This step checks how tall the label would be with the desired font.
    CGSize labelSize = [self.ourText sizeWithFont:font constrainedToSize:constraintSize lineBreakMode:UILineBreakModeWordWrap];

    /* Here is where you use the height requirement!
    Set the value in the if statement to the height of your UILabel
    If the label fits into your required height, it will break the loop
    and use that font size. */
    if(labelSize.height <= 180.0f)
        break;
}
// You can see what size the function is using by outputting: NSLog(@"Best size is: %u", i);

// Set the UILabel's font to the newly adjusted font.
msg.font = font;

// Put the text into the UILabel outlet variable.
msg.text = self.ourText;

关于iphone - 减小第三行的 UIButton 标签字体大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19568395/

相关文章:

iphone - 多条彩色贝塞尔路径

objective-c - NSMutableArray removeObject中的奇怪错误

ios - 在 TableView Cell 创建中向 UIButton 分配操作

iphone - iPad(非常)简单的绘图

ios - 如何在 Cordova 应用程序中使用 iPhone 上的蓝牙?

ios - iOS 中的总屏幕解锁时间计算

ios - 显示数据的可扩展 UITableView 单元格

ios - 按升序对数组进行排序并删除 objective-c 中的重复值

ios - UIbutton 的圆角扰乱了其宽度

ios - UIButtonBarItem 看起来不对