• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 字符串中的特定颜色

[复制链接]
菜鸟教程小白 发表于 2022-12-12 22:10:43 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我有一个 uitableview,它通过从网站上提取的数据来填充,因此每个单元格都有一个新字符串。为此,我想根据单元格中的文本为用户显示一个 HEX。

我已经尝试自己做到了,但没有运气,但幸运的是找到了一个 javascript 脚本,它可以完成我尝试做的事情。这个脚本,我现在需要转换成obj-c,我自己试过了,但是失败了。我希望能得到一些帮助。

javascript: http://jsfiddle.net/sUK45/

我在 obj-c 中的尝试(这里的字符串不是基于来自网络的数据,而是一个数组):

unichar hash = 0;

        NSArray *strings = [NSArray arrayWithObjects"MA", @"Ty", @"Ad", @"ER", nil];

        for (int i = 0; i < [[strings objectAtIndex:indexPath.row] length]; i++) {
            hash = [[strings objectAtIndex:indexPath.row] characterAtIndex:i] + ((hash < 5) - hash);
        }

        NSString *colour = @"#";
        for (int i = 0; i < 3; i++) {
            int value = (hash >> (i * 8)) & 0xFF;
            colour = [NSString stringWithFormat"%@%d", colour, value];
        }

        NSLog(@"%@", colour);

但我得到的数据不是可用的 HEX - NSlog:

#2432550
#3600
#3400
#1200



Best Answer-推荐答案


这可能不是唯一一个错误。改变

hash = [[strings objectAtIndex:indexPath.row] characterAtIndex:i] + ((hash < 5) - hash);

hash = [[strings objectAtIndex:indexPath.row] characterAtIndex:i] + ((hash << 5) - hash);

更新:

也要改

colour = [NSString stringWithFormat"%@%d", colour, value];

colour = [NSString stringWithFormat"%@%02x", colour, (unsigned int)value];

更新2:

我又修复了一个错误并简化了代码:

unsigned int hash = 0;

NSArray *strings = [NSArray arrayWithObjects"MA", @"Ty", @"Ad", @"ER", nil];
NSString *string = [strings objectAtIndex:indexPath.row];

for (int i = 0; i < string.length; i++) {
    hash = [string characterAtIndex:i] + ((hash << 5) - hash);
}

NSString *color = [NSString stringWithFormat"#%06x", hash % 0x1000000];
NSLog(@"%@", color);

关于ios - 字符串中的特定颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23442642/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap