0
所以我試圖解決一些優秀的,涉及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;
但我得到的錯誤:「發送的CGRect以不兼容的類型CGSize的參數」。不過,我需要所有四個屬性......不僅僅是寬度和高度。所以我有使用CGRect而不是CGSize。任何想法如何讓它工作?
否則,我所有使用CGSize的其他代碼都可以正常工作。這只是我有兩段代碼確實需要CGRect。
他們有GOT想出一種方法來簡化這個......不知何故是2行代碼現在是10行代碼。我會在後端做一些事情,以使其效率更高(或更高效),因爲它已被棄用。無論如何,你的答案有效。謝謝! –