使用 NSMutableAttributedString 更改 WKInterfaceLabel 的文本颜色

2024-05-12

我正在尝试使用 setAttributedText 属性更改 WKInterfaceLabel 中的文本颜色。这是代码:

MyRowController *row = [self.interfaceTable rowControllerAtIndex:idx];

NSString *str_tmp = @"Test";

NSMutableAttributedString *text = [[NSMutableAttributedString alloc] initWithString:str_tmp];        
[text addAttribute:NSFontAttributeName value:[UIFont fontWithName:FONT_REGULAR size:12.0] range:NSMakeRange(0, str_tmp.length)];
[text addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(0, str_tmp.length)];

[row.lines setAttributedText:text];

结果:

只有第一个属性可以正常工作。我做了一些测试,但没有任何反应,颜色字体没有变成红色。

WKInterfaceController代码:

@interface MyInterfaceController()

@implementation MyInterfaceController

- (void)awakeWithContext:(id)context {

    [super awakeWithContext:context];

}

- (void)willActivate {

    [super willActivate];
    [self loadTableData];

}

- (void)didDeactivate {
    [super didDeactivate];
}


#pragma mark - 
#pragma mark Table
#pragma mark -

- (void)loadTableData {

    NSMutableArray *arrItems = [NSMutableArray new];

    for(user* usr in self.agenda.users){
        [arrItems addObject:usr];
    }

    [self.interfaceTable setNumberOfRows:arrItems.count withRowType:@"userRow"];

    [arrItems enumerateObjectsUsingBlock:^(NSDictionary *dict, NSUInteger idx, BOOL *stop) {

        MyRowController *row = [self.interfaceTable rowControllerAtIndex:idx];

        NSString *str_tmp = @"Test";

        NSMutableAttributedString *text = [[NSMutableAttributedString alloc] initWithString:str_tmp];        
        [text addAttribute:NSFontAttributeName value:[UIFont fontWithName:FONT_REGULAR size:12.0] range:NSMakeRange(0, str_tmp.length)];
        [text addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(0, str_tmp.length)];

        [row.lines setAttributedText:text];

    }];

}

@end

MyRowController 代码:

@导入WatchKit;

@interface MyRowController : NSObject

@property (weak, nonatomic) IBOutlet WKInterfaceSeparator *separator;
@property (weak, nonatomic) IBOutlet WKInterfaceGroup *contentGroup;
@property (weak, nonatomic) IBOutlet WKInterfaceLabel *lines;
@property (weak, nonatomic) IBOutlet WKInterfaceGroup *separatorBottom;


@end

您能发布完整的接口控制器和行控制器吗?很难判断哪里出了问题。你现在正在做的事情看起来不错。话虽如此,有两件事可能会有所帮助。

首先,确保不要尝试将其设置为init or awakeWithContext。您需要将其设置为willActivate。否则你会得到一些奇怪的行为。

其次,您需要在界面控制器可见时进行设置。否则更改可能不会被接受。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 NSMutableAttributedString 更改 WKInterfaceLabel 的文本颜色 的相关文章

随机推荐

  • 如何在WKInterfaceLabel下面放置一个WKInterfaceLabel?

    大家好 我在 watchkit 开发中有新的东西 我有特殊要求 我将一个 WKInterfaceLabel 安排在另一个 WKInterfaceLabel 下面 我尝试使用很多关闭选项 例如编辑位置 但 WKInterfaceLabel 未
  • 在多模块项目中访问绑定适配器

    我有一个多模块项目 其中应用程序模块包含我的绑定适配器 而我的功能模块取决于我的应用程序模块 因为它是动态功能模块 应用程序 包含绑定适配器 gt 动态功能模块 存在布局的地方 我在所有模块中启用了数据绑定和 kapt 我无法成功构建应用程
  • 可变借用不止一次[重复]

    这个问题在这里已经有答案了 这是无法编译的简短示例的简短示例 错误在于add1功能 如果我这样做的话它会起作用add2 但这不是很干 有更多经验的人能否启发我如何以比以前更好的方式克服可变借用错误 add2 struct S1 full b
  • 如何使用Peewee查询多个相似的数据库?

    我遇到了使用 Peewee 查询多个数据库的问题 我有 2 个现有的 mysql 数据库 让我们将它们命名为 A 和 B 结构相似 因为它是两个 Bugzilla 数据库 我使用 Pwiz 生成模型 modelsA py 和 modelsB
  • 具有多重继承的类的 sizeof

    首先 我知道 sizeof 取决于机器和编译器的实现 我使用的是 Windows 8 1 x64 gcc 5 3 0 没有标志传递给编译器 我从大学讲座中得到了以下代码 include
  • Python 中 eval("input()") 和 eval(input()) 之间的区别

    我正在尝试以下功能 x eval input 输入为 123 x 的类型也是int 它工作正常 In 22 x eval input enter enter 123 In 24 print type x
  • 为什么 http://localhost/ 不使用 WAMP 加载任何内容?

    我最近尝试安装 WAMP 但发现没有页面加载 它还有一个橙色的 W 标志 如果这有什么意义的话 它确实说 托盘图标 WAMP服务器已上线尽管 我也做了一些研究 发现 Skype 可能会引起问题 所以我删除了使用端口 80 和 443 作为传
  • Netty中连接关闭后重新连接的最佳方法是什么

    简单场景 扩展 SimpleChannelUpstreamHandler 的较低级别的类 A 此类是发送消息和接收响应的主力 系统其他部分可以使用顶级类 B 来发送和接收消息 可以模拟同步和异步 此类创建 ClientBootstrap 设
  • 一个表单包含两个提交按钮,每个按钮都有不同的操作

    我花了几个小时试图找到问题的解决方案 但似乎找不到正确的解决方案 提前感谢你的帮助 我有一个 html 表单
  • MySQL ALTER TABLE 挂起

    我知道这个问题已经被问过好几次了 但我的问题发生在我刚刚创建的表上 它只有 10 列和 1 行 因此 与通常的挂起问题不同 这不是具有大量数据的大表的情况 但它仍然挂着 这是我正在运行的 SQL ALTER TABLE db Search
  • NoSuchMethodError:将 Firebase 与应用程序引擎应用程序集成时

    我试图将 firebase 实时数据库与谷歌应用程序引擎应用程序集成 我在调用时收到此错误 gt DatabaseReference ref FirebaseDatabase gt getInstance gt getReference t
  • 有没有办法使 C90 标准中的枚举无符号? (符合 MISRA-C 2004 标准)

    我正在尝试找到一种使枚举 无符号 的方法 enum x1 0 x2 x3 uint8 t x2 lt PC LINT MISRA C 2004 will complain about mixing signed and unsigned h
  • 具体什么是调试呢?

    什么是调试代码 我该如何进行 调试 http en wikipedia org wiki Debugging是确保您的代码不包含任何内容的过程bugs http en wikipedia org wiki Software bug 或至少尽
  • WebGL - 如何传递无符号字节顶点属性颜色值?

    我的顶点由具有以下结构的数组组成 Position colour float float float byte byte byte byte 传递顶点位置没有问题 gl bindBuffer gl ARRAY BUFFER this vbo
  • 如何在 bash 中结合超时和 eval 命令

    为了执行存储在变量中的命令eval使用命令 gt a echo e a nb wc l gt eval a 2 但如何才能与它结合起来呢 timeout命令 我尝试过以下操作 这给了我错误的输出 gt timeout 10 a a b wc
  • 统计Sweep算子的Python实现

    我正在学习一些用书中缺失的数据进行统计的技术 缺失数据的统计分析作者 利特尔和鲁宾 对于处理单调无响应数据来说 一个特别有用的函数是扫频操作员 详情见第 148 151 页 我知道 R 模块gmm有swp函数可以做到这一点 但我想知道是否有
  • 为什么 gradle Exec 任务不运行我的命令?

    我已经阅读了 stackoverflow 和 gradle 表单 但我仍然感到困惑 这里的最终目标是 在我复制一些文件后 我想设置可写标志 因为 复制 不喜欢覆盖 nix 上的只读文件 呵呵 也不能强迫它这样做这样做 哼 这是我所拥有的概要
  • 液体字符串中的转义字符

    我正在尝试将包含各种尺寸的标签列表放在一起 在 Shopify 中使用 Liquid 尺寸使用单引号和双引号表示英寸和英尺 因为它同时使用两者 所以会导致字符串正确关闭的问题 我尝试过使用标准转义字符 但这似乎不起作用 是否可以在 Liqu
  • ActiveMQ发送ObjectMessage

    我正在使用 ActiveMQ 在我当前的项目中实现消息系统 我需要发送和接收 Java 对象 而不是简单的文本或二进制消息 Java 对象 我的消息对象 根据需要实现了 Serialized 接口 ActiveMQ 的最新版本添加了一些安全
  • 使用 NSMutableAttributedString 更改 WKInterfaceLabel 的文本颜色

    我正在尝试使用 setAttributedText 属性更改 WKInterfaceLabel 中的文本颜色 这是代码 MyRowController row self interfaceTable rowControllerAtIndex