6

で色を変更する方法を探していUIRefreshControlます。テキストは で表示されるNSAttributedStringので、次を使用してみますCoreText.framework

 NSString *s = @"Hello";
 NSMutableAttributedString *a = [[NSMutableAttributedString alloc] initWithString:s];
 [a addAttribute:(id)kCTForegroundColorAttributeName value:(id)[UIColor redColor].CGColor range:NSRangeFromString(s)];
 refreshControl.attributedTitle = a;

テキストは正しく表示されますが、色は常にデフォルトのグレーです。何か案は ?

4

7 に答える 7

11

NSForegroundColorAttributeNameではなく、を使用する必要がありますkCTForegroundColorAttributeName


また、渡される範囲はNSMakeRange(0, [s length]);.

于 2012-10-09T18:39:15.757 に答える
11

Swift では、次のようにattributedTitleの色を設定できます。

self.refreshControl?.attributedTitle = NSAttributedString(string: "Pull to refresh", attributes: [NSForegroundColorAttributeName: UIColor(red: 255.0/255.0, green: 182.0/255.0, blue: 8.0/255.0, alpha: 1.0)])
于 2015-05-09T22:20:23.623 に答える
8

シンプルバージョン:

NSAttributedString *title = [[NSAttributedString alloc] initWithString:@"Refresh…" 
attributes: @{NSForegroundColorAttributeName:[UIColor redColor]}];
refreshControl.attributedTitle = [[NSAttributedString alloc]initWithAttributedString:title];
于 2014-04-24T01:33:29.300 に答える
5

「addAttribute」メソッドに渡す「value」パラメーターはCGColorです。代わりにUIColorを使用すると、機能します。[UIColor redColor] .CGColor

NSString *s = @"Hello";  
NSMutableAttributedString *a = [[NSMutableAttributedString alloc] initWithString:s];  
[a addAttribute:kCTForegroundColorAttributeName value:[UIColor redColor] range:NSRangeFromString(s)]; 
refreshControl.attributedTitle = a;
于 2012-12-04T04:54:17.840 に答える
2

Swift バージョン 4 (iOS 11)

        let myString = "Pull to refresh"
        let myAttribute = [ NSAttributedString.Key.foregroundColor: UIColor.black ]
        let myAttrString = NSAttributedString(string: myString, attributes: myAttribute)
        refreshControl.attributedTitle = myAttrString
于 2018-07-05T09:37:41.513 に答える
1

この方法を使用して、

  • (id)initWithString:(NSString *)str 属性:(NSDictionary *)attrs;
  • (id)initWithAttributedString:(NSAttributedString *)attrStr;

したがって、

NSMutableDictionary *attributes = [NSMutableDictionary dictionary];
[attributes setObject:[UIColor whiteColor] forKey:NSBackgroundColorAttributeName]; //background color :optional
[attributes setObject:[UIColor redColor] forKey:NSForegroundColorAttributeName];  //title text color :optionala
NSAttributedString *title = [[NSAttributedString alloc] initWithString:@"Refresh!!" attributes:attributes];

_refreshcontrol.attributedTitle = [[NSAttributedString alloc]initWithAttributedString:title];
于 2014-01-22T10:11:31.850 に答える