【问题标题】:Passing hexadecimal color values from Xcode to Javascript将十六进制颜色值从 Xcode 传递到 Javascript
【发布时间】:2012-02-16 22:45:08
【问题描述】:

我正在尝试将一个十六进制颜色值从 ObjectiveC 传递给 Javascript。我正在显示一个图表,我正在尝试将颜色传递给 javascript,这样我就不需要在我的 html 页面中对其进行硬编码。

这就是我的工作 -

在我的 .m 文件中,

NSArray *colorArray = [NSArray arrayWithObjects:@"FFFFFF",@"000000", nil];

colorString = [[colorArray valueForKey:@"description"] componentsJoinedByString:@","];

在我的 webViewDidFinishLoad 函数中,

[graphView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"methodName1([%@])", colorString]];

但是,javascript 无法接受这些值。

在我的 Javascript 函数中,我应该怎么做才能接受这些值 - FFFFFF 和 000000 以便我可以使用它们。

我正在尝试使用这样的颜色 -

line1.Set('chart.colors', ['FF0000', '000000']);

我不想在那里给出十六进制值,而是从 objC 中获取它。

更新 -

这是我使用的 javascript 函数 -

function methodName1(val)
{
   alert("hi");
}

但是,该函数甚至没有被调用。我觉得问题在于我传递值的方式...

如果有人能帮我解决这个问题,那就太好了。

【问题讨论】:

    标签: javascript objective-c ios5 hex


    【解决方案1】:

    你在打电话

    methodName1([FFFFFF,000000]); // will fail since FFFFFF is not defined
    

    但你想要

    methodName1(['FFFFFF','000000']);
    

    【讨论】:

    • 我如何从 objc 调用它?我会这样做吗 - [graphView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"methodName1('[%@]')", colorString]];
    • 好吧..那行得通! [graphView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"methodName1('[%@]')", colorString]];将''放在字符串传递值之前...
    • 您需要确保引用每个单独的参数。试试colorstring = [NSString stringWithFormat:@"'%@'", [colorArray componentsJoinedByString:@"','"]];
    【解决方案2】:

    您可能需要在每种颜色之前添加一个“#”字符。

    【讨论】:

    • 而且,是的...colorString = [colorArray componentsJoinedByString:@","]; 就足够了。
    • 感谢您的回复..但是,我仍然面临这个问题..我已经用我使用的功能更新了我的问题...
    • 另外,如果我传递像 NSArray *colorArray = [NSArray arrayWithObjects:@"a",@"b", nil]; 这样的字符串该函数没有被调用..
    猜你喜欢
    • 2021-04-02
    • 2022-06-29
    • 2017-04-05
    • 2019-06-16
    • 2021-03-08
    • 1970-01-01
    • 2013-10-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多