如何在UIRefreshControl中使用NSAttributedString

时间:2012-10-17 10:27:24

标签: objective-c ios6 nsattributedstring uirefreshcontrol

我在this post中找到了NSAttributedString的示例。我的问题是 - 是否有任何提示,如何将其用于UIRefreshControl class

从上面的帖子:

NSMutableAttributedString * string = [[NSMutableAttributedString alloc] initWithString:@"firstsecondthird"];
[string addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(0,5)];
[string addAttribute:NSForegroundColorAttributeName value:[UIColor greenColor] range:NSMakeRange(5,6)];
[string addAttribute:NSForegroundColorAttributeName value:[UIColor blueColor] range:NSMakeRange(11,5)];

UIRefreshControl自动调用属性吗?

编辑:

我知道如何设置它,我想知道它是否用于任何其他目的然后“只是”格式化标签 - UIRefresherControl是否能够显示 TWO 字符串?一个被拉出之前,一个被拉了之后?当我看到我不能放入“普通”字符串时,这就是我的想法。

2 个答案:

答案 0 :(得分:5)

这是完整的示例,如何在UIRefreshControl中创建和修改色调颜色,字体颜色和字体样式:

_refreshControl = [[UIRefreshControl alloc] init];
_refreshControl.tintColor = [UIColor blackColor];
NSMutableAttributedString *string = [[NSMutableAttributedString alloc] initWithString:@"Pull to Refresh"];
NSRange fullRange = NSMakeRange(0, [string length]);
[string addAttribute:NSForegroundColorAttributeName value:[UIColor blackColor] range:fullRange];
[string addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"Georgia" size:17] range:fullRange];
[_refreshControl setAttributedTitle:string];
[_refreshControl addTarget:self action:@selector(refresh:) forControlEvents:UIControlEventValueChanged];
[self setRefreshControl:_refreshControl];

答案 1 :(得分:4)

好吧,看看UIRefreshControl有一个attributedTitle属性的NSAttributedString属性,并看到NSMutableAttributedStringNSAttributedString的子类,会这样做:

[myRefreshControl setAttributedTitle:string];

  

是能够显示两个字符串的UIRefresherControl吗?

没有。但是你可以尝试使用多行或者不同的段落样式来放置一个属性字符串(例如,一个部分可以左对齐,另一个右对齐,例如)。

  

一个被拉过之前还有一个被拉过后?

没有。您可以根据自己的应用程序逻辑更改refreshControl的属性标题。