3

我在这篇文章中找到了 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 是否能够显示两个字符串?拉之前一张,拉之后一张?当我看到我不能放入“普通”字符串时,这就是我最初的想法。

4

2 回答 2

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];
于 2013-07-17T16:20:05.630 回答
4

好吧,看看 howUIRefreshControl有一个attributedTitle接受 a 的属性NSAttributedString,并看看 howNSMutableAttributedString是 的子类NSAttributedString,你会这样做:

[myRefreshControl setAttributedTitle:string];

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

不可以。但是您可以尝试放入具有多行或不同段落样式的属性字符串(例如,一部分可以左对齐,另一部分右对齐)。

拉之前一张,拉之后一张?

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

于 2012-10-19T14:33:24.770 回答