2017-04-01 16 views
0

私はiPhoneアプリを持っており、毎年いくつかのコード要素で廃止予定の問題が生成されています。私のアプリはいくつかのわずかなフォーマットの問題を除いて正常に動作するようです。私は提案されたコードを使用しようとしましたが、エラーが発生します。私は本当にフォーマット問題を解決するかどうかを確認するためにこれらを修正したいと思います。誰かが私にこれらを手伝ってもらえますか?sizewithFontとdrawinRect書式設定

最初の問題: 'sizeWithFont:constrainedToSize:lineBreakMode:'は廃止されました:iOS 7.0では廃止されました:-boundingRectWithSize:options:attributes:context:推奨置換を使用しようとしましたが、以下のコード)。オプション、属性、およびコンテキストに現在のコードをどこに収めるかは不明です。

第2版: 'drawInRect:withFont:lineBreakMode:alignment:'は非推奨:iOS 7.0では初めて使用されなくなりました。-drawInRect:withAttributesを使用しました。推奨置換を使用しようとしましたが、 )。 withAttributesを使って現在のコードをどこに合わせるかは不明です。

//Draw text fo our header. 
     CGContextRef currentContextHeader = UIGraphicsGetCurrentContext(); 
     CGContextSetRGBFillColor(currentContextHeader, 0.3, 0.7, 0.2, 1.0); 

     NSString *textToDrawHeader = [NSString stringWithFormat:@"%@", enterSubject.text]; 

     UIFont *fontHeader = [UIFont systemFontOfSize:24.0]; 

     //Original Code that generated the issue 
     //CGSize stringSizeHeader = [textToDrawHeader sizeWithFont:fontHeader constrainedToSize:CGSizeMake(_pageSize.width - 2*kBorderInset-2*kMarginInset, _pageSize.height - 2*kBorderInset - 2*kMarginInset) lineBreakMode:NSLineBreakByWordWrapping]; 

     //Proposed change that resulted in an error 
     CGSize stringSizeHeader = [textToDrawHeader boundingRectWithSize:fontHeader options:attributes:context:constrainedToSize:CGSizeMake(_pageSize.width - 2*kBorderInset-2*kMarginInset, _pageSize.height - 2*kBorderInset - 2*kMarginInset) lineBreakMode:NSLineBreakByWordWrapping]; 

     CGRect renderingRectHeader = CGRectMake(kBorderInset + kMarginInset, kBorderInset + kMarginInset, _pageSize.width - 2*kBorderInset - 2*kMarginInset, stringSizeHeader.height); 

     int ydistanceToLine = kBorderInset + kMarginInset + stringSizeHeader.height +kMarginInset; 

     //Original Code that generated the issue 
     //[textToDrawHeader drawInRect:renderingRectHeader withFont:fontHeader lineBreakMode:NSLineBreakByWordWrapping alignment:NSTextAlignmentLeft]; 

     //Proposed change that resulted in an error 
     [textToDrawHeader drawInRect:withAttributes:renderingRectHeader withFont:fontHeader lineBreakMode:NSLineBreakByWordWrapping alignment:NSTextAlignmentLeft]; 
+0

警告メッセージを読んだことがありますか?代わりに何を使うべきかを教えてくれます。そしてメッセージを検索してください。それらは何度もここでカバーされています。 – rmaddy

+0

私は交換の使い方を探しましたが、与えられた例を考えれば、それをどうやって行うのかは明確ではありませんでした。 – G2Groups

+1

あなたのしたことを示す実際のコード(写真ではない)であなたの質問を[編集]してください。あなたの試みがどのような問題であるかを明確に説明してください。 – rmaddy

答えて

0

戻りタイプ-boundingRectWithSize:options:attributes:context:CGRectです。しかし、あなたのコードでは、値をCGSizeに割り当てています。

例:

CGRect textRect = [_lbl_title.text boundingRectWithSize:boundingSize options:NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading attributes: @{NSFontAttributeName:font} context:nil]; 

サンプル:

- (float)expectedLabelHeight 
{  
    CGSize boundingSize = CGSizeMake(CGRectGetWidth(_lbl_title.bounds), CGFLOAT_MAX); 
    UIFont *font = [UIFont fontWithName:@"Roboto-Light" size:14]; 
    CGRect textRect = [_lbl_title.text boundingRectWithSize:boundingSize options:NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading attributes: @{NSFontAttributeName:font} context:nil]; 

    return (textRect.size.height+20.0); 
} 
は、上記の例に従って、あなたのコードを変更し