根据高度获取文本

Gyp*_*psa 5 iphone objective-c nsstring

我们都知道我们可以根据文本计算标签或任何控件的高度.像这样:

    NSString *text=@"fwfgwefgwefhwefhwoefhwoeifhoiwefhwoeifhwieofhweohfiweofowefhowefhoweifhweofhweofhweoihfweiofhiowefhweiofhwioefhweiofhiweofhweiofhweiofhweiofhweiofweoifiweofhweoifhiowefhoiwefhowewoefoiwehfoiwe";     
    labelsize=[text sizeWithFont:[UIFont systemFontOfSize:14] constrainedToSize:CGSizeMake(100, 2000.0)];
    NSLog(@"labelsize.height%f",labelsize.height);
Run Code Online (Sandbox Code Playgroud)

现在假设我得到身高= 270.现在我只想要那个高度为200的文本.就像我的标签高度是200,我希望直到200高度文本进入标签,文本的其余部分应显示在另一个标签.所以我想问一下是否可以根据身高获得文字.

提前致谢!

Inf*_*ies 3

CGFloat maxHeight = 500;
NSString *text = @"fwfgwefgwefhwefhwoefhwoeifhoiwefhwoeifhwieofhweohfiweofowefhowefhoweifhweofhweofhweoihfweiofhiowefhweiofhwioefhweiofhiweofhweiofhweiofhweiofhweiofweoifiweofhweoifhiowefhoiwefhowewoefoiwehfoiwe";
NSMutableString *tmpText = [[NSMutableString alloc] initWithString:text];
NSRange range = NSMakeRange([tmpText length] - 1, 1);
while ([text sizeWithFont:[UIFont systemFontOfSize:14] constrainedToSize:CGSizeMake(100, 2000.0)].height > maxHeight) {
    [tmpText deleteCharactersInRange:range];
    range.location--;
}
NSLog(@"result: %@", tmpText);
[tmpText release];
Run Code Online (Sandbox Code Playgroud)

我认为这可以完成这项工作。它尚未经过充分测试,但它可以工作。