gpt4 book ai didi

ios - 字符串中的特定颜色

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:23:29 26 4
gpt4 key购买 nike

我有一个 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

最佳答案

可能这不是唯一的错误。变化

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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com