我可以在不创建UILabel的情况下

我可以在不创建UILabel的情况下

我只想知道行数,给出字体,约束和文本。我可以在不创建UILabel的情况下弄清楚吗?

+ (int)numberOfLines:(NSDictionary *)data{
    NSString *myString = [some string calculation];
    CGSize sizeConstrain = CGSizeMake(some constrain calculation);
    CGSize stringSize = [myString sizeWithFont:someFont constrainedToSize:sizeConstrain];

    CGRect labelFrame = CGRectMake(0,
                                   0,
                                   stringSize.width,
                                   stringSize.height + 2);

    UILabel *label = [[UILabel alloc]initWithFrame:labelFrame];

    label.text = myString;
    return label.numberOfLines;
}

最佳答案


+ (int)numberOfLines:(NSDictionary *)data{
        NSString *myString = [some string calculation];
        CGSize sizeConstrain = CGSizeMake(some constrain calculation);
        CGSize stringSize = [myString sizeWithFont:someFont constrainedToSize:sizeConstrain];


        return (stringSize.height/someFont.lineHeight);
    }

编辑:我用于UITextView和iOS7
 - (CGFloat) getRowsForText:(NSString*) text{

CGFloat fixedWidth = 300;

UIFont *font = [UIFont fontWithName:@"HelveticaNeue" size:14];
NSMutableParagraphStyle *paragrapStyle = [[NSMutableParagraphStyle alloc] init];
paragrapStyle.alignment = NSTextAlignmentLeft;

textStepAttr = [NSDictionary dictionaryWithObjectsAndKeys:
                font,NSFontAttributeName,
                paragrapStyle, NSParagraphStyleAttributeName,
                nil];

NSAttributedString *attributedText = [[NSAttributedString alloc] initWithString:text attributes:textStepAttr];
CGRect rect = [attributedText boundingRectWithSize:CGSizeMake(fixedWidth, MAXFLOAT)
                                           options:NSStringDrawingUsesLineFragmentOrigin
                                           context:nil];


return (rect.size.height / font.lineHeight) ;
}

关于ios - 我可以在不创建UILabel的情况下找出NSString的numberOfLines吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22300016/

10-08 22:41