我创建了一个方法,我想创建一个部分粗体的NSMutableAttributedString。但是我在调用它来返回它应该的数据时遇到了一些麻烦。
这就是我实现代码的方式
//.h
// creates bold portion of the labels in toolbar
- (NSMutableAttributedString *)createBoldString:(NSString *)labelString intRangeA:(int)rangeA intRangeB:(int)rangeB;
//.m
- (NSMutableAttributedString *)createBoldString:(NSString *)labelString intRangeA:(int)rangeA intRangeB:(int)rangeB {
// iOS6 and above : Use NSAttributedStrings
const CGFloat fontSize = 12;
UIFont *boldFont = [UIFont boldSystemFontOfSize:fontSize];
UIFont *regularFont = [UIFont systemFontOfSize:fontSize];
UIColor *foregroundColor = [UIColor whiteColor];
// Create the attributes
NSDictionary *attrs = [NSDictionary dictionaryWithObjectsAndKeys:
boldFont, NSFontAttributeName,
foregroundColor, NSForegroundColorAttributeName, nil];
NSDictionary *subAttrs = [NSDictionary dictionaryWithObjectsAndKeys:
regularFont, NSFontAttributeName, nil];
const NSRange range = NSMakeRange(rangeA, rangeB); // range of " 2012/10/14 ". Ideally this should not be hardcoded
// Create the attributed string (text + attributes)
NSMutableAttributedString *attributedText =
[[NSMutableAttributedString alloc] initWithString:labelString
attributes:attrs];
[attributedText setAttributes:subAttrs range:range];
// Set it in our UILabel and we are done!
return attributedText;
// [firstToolBarLabel setAttributedText:attributedText];
}
这就是我试图在没有成功的情况下调用它的方式
NSAttributedString *firstAttr = [[NSAttributedString alloc] init];
[firstAttr create.... // this dose not auto complete and I cannot see the method
我不知道为什么,但我不能使用我创建的方法。我做得对吗?有没有不同的方式来传回数据或我错过了什么
任何帮助将不胜感激。
答案 0 :(得分:3)
您想致电[self create...]
,而不是[firstAttr create...
]。您的create...
方法是对象的实例方法(self)。 返回属性字符串,但它不是 属性字符串类的方法。