sizeWithFont method is deprecated. boundingRectWithSize returns an unexpected value

前端 未结 6 1378
傲寒
傲寒 2020-12-02 06:38

In iOS7, sizeWithFont is deprecated, so I am using boundingRectWithSize(which returns a CGRect value). My code:

 UIFont *fontText =         


        
6条回答
  •  感情败类
    2020-12-02 07:36

    How about create new label and using sizeThatFit:(CGSize)size ??

    UILabel *gettingSizeLabel = [[UILabel alloc] init];
    gettingSizeLabel.font = [UIFont fontWithName:@"YOUR FONT's NAME" size:16];
    gettingSizeLabel.text = @"YOUR LABEL's TEXT";
    gettingSizeLabel.numberOfLines = 0;
    gettingSizeLabel.lineBreakMode = NSLineBreakByWordWrapping;
    CGSize maximumLabelSize = CGSizeMake(310, CGFLOAT_MAX);
    
    CGSize expectSize = [gettingSizeLabel sizeThatFits:maximumLabelSize];
    

    Edit: This upper code is not good for ios 7 and above, so please use below:

    CGRect textRect = [myString boundingRectWithSize:maximumLabelSize   
                             options:NSStringDrawingUsesLineFragmentOrigin| NSStringDrawingUsesFontLeading
                             attributes:@{NSFontAttributeName:fontText}
                             context:nil];
    

提交回复
热议问题