1

を取得しようとしてCGSizeNSStringますが、問題があります。私が使用しているコードは次のとおりです。

CGFloat actualMessageFontSize;
CGSize messageSize = 
 [message sizeWithFont:[UIFont fontWithName:@"Helvetica-Bold" 
                                       size:14.0f] 
           minFontSize:14.0f 
        actualFontSize:&actualMessageFontSize 
              forWidth:(alertViewWidth - textIndent) 
         lineBreakMode:NSLineBreakByWordWrapping];

このコードを実行NSLogしたCGSize後、大規模なものを入れても高さは変わりませんNSString。なぜこれが起こるのか、または代わりに何を試すべきか知っていますか?

ありがとう。

4

2 に答える 2

2

この方法を使用して

-(float) calculateHeightOfTextFromWidth:(NSString*) text: (UIFont*)withFont: (float)width :(UILineBreakMode)lineBreakMode
{
    [text retain];
    [withFont retain];
    CGSize suggestedSize = [text sizeWithFont:withFont constrainedToSize:CGSizeMake(width, FLT_MAX) lineBreakMode:lineBreakMode];

    [text release];
    [withFont release];

    return suggestedSize.height;
}

以下のように使用します...UILableコードを参照するためにこれを使用します。

    UILabel *lblAddress = [[UILabel alloc]init];
    [lblAddress setFrame:CGRectMake(110, 31, 200, 31)];        
    lblAddress.text = @"ABDKFNKG KKGK jfnjgdf gdklfg fldgmfkgml f";
    lblAddress.lineBreakMode = UILineBreakModeWordWrap;
    lblAddress.numberOfLines = 0;///write this line for multiple line and set 0 or anything lese
    lblAddress.font = [UIFont fontWithName:@"Helvetica" size:12];

    lblAddress.frame = CGRectMake(lblAddress.frame.origin.x, lblAddress.frame.origin.y, 
                             200,[self calculateHeightOfTextFromWidth:lblAddress.text :lblAddress.font :200 :UILineBreakModeWordWrap] ); 

    lblAddress.textColor = [UIColor darkGrayColor];

    [self.view addSubview:lblAddress];
于 2012-12-07T11:19:10.900 に答える
0

のフレームを変更するUILabelUITextView、それに応じて変更するために使用している可能性のあるフレームを変更します。

 CGFloat actualMessageFontSize = 12.0;
CGSize messageSize = [message sizeWithFont:[UIFont fontWithName:@"Helvetica-Bold" size:14.0f] minFontSize
//set frame accordingly
yourLabel.frame = CGReactMake(yourLabel.frame.origin.x,yourLabel.frame.origin.y,messageSize.width,messageSize.wiheight,);
于 2012-12-07T11:19:30.797 に答える