0

这个问题已经问过很多次了,但是我还不清楚,得到了错误的输出。所以请任何人帮助..

CGSize maximumSize = CGSizeMake(208, 21);
UIFont *myFont = [UIFont fontWithName:@"Helvetica" size:14];
CGSize myStringSize = [my_string sizeWithFont:myFont
                           constrainedToSize:maximumSize
                               lineBreakMode:self.my_label.lineBreakMode];
my_label.numberOfLines = 0;
my_label.frame.size = myStringSize;

我有一个尺寸为 (208, 21) 的标签,我使用以下代码来获取 NSString 相对于我的标签宽度所需的实际高度,我想要固定宽度,只有高度需要改变,所以我可以在标签中设置。但它总是比实际高度低..我在这里做错什么了吗..

谢谢..

4

3 回答 3

2

在您的示例中,使用具有(非常)大高度的最大尺寸而不是限制高度:

CGSize maximumSize = CGSizeMake(208, CGFLOAT_MAX);

这样,总有足够的高度可以扩展,同时将宽度限制为您实际想要的宽度。

于 2013-01-15T11:13:45.480 回答
0

试试这个 :

-(CGSize) calculateWidthOfString:(NSString*)textString withFont:(UIFont*)font
    {
        CGSize maximumSize = CGSizeMake(9999, 22);
        CGSize size = [textString sizeWithFont:font
                             constrainedToSize:maximumSize 
                                 lineBreakMode:UILineBreakModeWordWrap];
        return size;
    }

使用 stringObject 和字体名称、大小调用此函数

它返回具有恒定高度“22”的字符串的宽度,根据需要更改此值。

希望这会帮助你。

于 2013-01-15T11:19:28.720 回答
0
+  (CGSize) calculateLabelHeightWith:(CGFloat)width text:(NSString*)textString
{
    CGSize maximumSize = CGSizeMake(width, 9999);
    CGSize size = [textString sizeWithFont:[UIFont fontWithName:@"Helvetica" size:24]
                         constrainedToSize:maximumSize 
                             lineBreakMode:UILineBreakModeWordWrap];
    return size;
}

+ (CGSize) calculateLabelWidthOfString:(NSString*)textString withFont:(UIFont*)font
{
    CGSize maximumSize = CGSizeMake(9999, 22);
    CGSize size = [textString sizeWithFont:font
                         constrainedToSize:maximumSize 
                             lineBreakMode:UILineBreakModeWordWrap];
    return size;
}

使用这两个作为高度或宽度

于 2013-01-15T11:32:56.233 回答