我正在将属性应用于我的文本:
//Great the number string and the rect to put it in
NSString *numberOne = @"1";
CGRect numberRect = CGRectMake(47, 100, 50, 50);
//Create the attributes
UIFont *font = [UIFont fontWithName:@"Academy Engraved LET" size:60];
NSParagraphStyle *paragraphStyle = [NSParagraphStyle defaultParagraphStyle];
NSDictionary *numberOneAttributes = @{NSParagraphStyleAttributeName: paragraphStyle, NSFontAttributeName: font, NSForegroundColorAttributeName: [self darkGoldColor]};
[numberOne drawInRect:numberRect withAttributes:numberOneAttributes];
我不明白阵列初始化。为什么我们使用NSParagraphStyleAttributeName: paragraphStyle
,第一项不应该是关键?这本词典中的键在哪里?对此的任何指示都会很棒。感谢
答案 0 :(得分:1)
这里没有初始化任何数组。 numberOneAttributes
是一本字典。如果你格式化它可以更具可读性:
NSDictionary *numberOneAttributes = @{
NSParagraphStyleAttributeName: paragraphStyle,
NSFontAttributeName: font,
NSForegroundColorAttributeName: [self darkGoldColor]
};
这些是键值对。 NSParagraphStyleAttributeName
实际上是一个关键 - 如果你CMD +点击它,XCode将带你到它的定义:
UIKIT_EXTERN NSString * const NSParagraphStyleAttributeName NS_AVAILABLE(10_0, 6_0); // NSParagraphStyle, default defaultParagraphStyle
通过使用系统定义的属性键,系统可以实际理解并将它们应用于您的字符串。