私はsizeWithFontに関連するいくつかの未解決のIOS7以前の廃止予定を修正しようとしています。私はここに答えを続けてきました。'sizeWithFont:constrainedToSize:lineBreakMode:'is deprecated:boundingRectWithSizeによる廃止予定の修正CGRectMake
..ほとんどがCGSizeとCGSizeMakeを扱わなければなりません。しかし私の問題はCGRectMakeと関係があり、私はそれを私が望むようにまとめることはできませんでした。
はここで、元のコードです:
CGSize optimumSize = [percentageText sizeWithFont:self.percentageFont constrainedToSize:CGSizeMake(max_text_width,100)];
CGRect percFrame = CGRectMake(text_x, right_label_y, optimumSize.width, optimumSize.height);
そして、ここで私が何をしようとしたものです:
NSString *percentageText = [NSString stringWithFormat:@"%.1f%%", component.value/total*100];
NSAttributedString *attributedText =
[[NSAttributedString alloc]
initWithString:percentageText
attributes:@
{
NSFontAttributeName: self.percentageFont
}];
CGRect percFrame = [attributedText boundingRectWithSize:(CGRectMake(text_x, right_label_y, max_text_width,100))
options:NSStringDrawingUsesLineFragmentOrigin
context:nil];
CGSize optimumSize = percFrame.size;
しかし、私はエラーを取得する:「互換性のない型CGSizeのパラメータにCGRectを送信します」。しかし、私は幅と高さだけでなく、4つの属性をすべて必要とします。だから私は CGRectを使用してCGSizeを使用していない。どのように私はそれを動作させることができますか?
そうでなければ、CGSizeだけを使用する私の他のコードはすべて正常に動作します。 CGRectが本当に必要なコードが2つあります。
これは合理化する方法を思いつきました...どうにかして2行のコードが10行のコードになりました。私はバックエンドで何かをして、それが非難される前と同じくらい効率的(あるいはより効率的)にしていたでしょう。とにかくあなたの答えが働く。ありがとう! –