You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

HighCharts(iOS)如何通过Swift传索引实现指定位置默认显示tooltip

实现代码

你之前的写法错误原因是load事件需要传入封装了JS逻辑的HIFunction对象,不能直接调用Swift侧的refresh方法,iOS端HighCharts本质是对JS库的WebView封装,事件逻辑需要通过JS函数实现,完整Swift适配代码如下:

import Highcharts

// 1. 配置Tooltip
let tooltip = HITooltip()
// 对应JS里的formatter逻辑,可自定义内容
tooltip.formatter = HIFunction(jsFunction: "function() { return '你要展示的tooltip内容'; }")
// 如果需要同时展示多个tooltip,可补充配置:
// tooltip.split = true
// tooltip.outside = true

// 2. 配置Chart加载事件
let chartEvents = HIEvents()
// Swift侧定义需要默认展示的点索引,可动态修改
let targetPointIndices: [Int] = [2, 4]
// 动态拼接JS逻辑,把Swift侧的索引传入JS执行
let loadEventJS = """
function() {
    let chart = this;
    \(targetPointIndices.map { "chart.tooltip.refresh(chart.series[0].points[\($0)]);" }.joined(separator: "\n"))
}
"""
chartEvents.load = HIFunction(jsFunction: loadEventJS)

let chart = HIChart()
chart.events = chartEvents

// 3. 组装到整体配置
let options = HIOptions()
options.chart = chart
options.tooltip = tooltip
// 你自己的series、xAxis、yAxis等其他配置照常写在这里

// 最后赋值给HighchartsView
yourHighchartsView.options = options

注意事项

  • 如果你要展示多个系列的点,修改JS里series[0]的索引即可,也可以从Swift侧动态传系列索引参数
  • 仅展示单个指定点tooltip的话,不需要额外配置tooltip的split或outside属性,多个tooltip同时展示才需要补充对应的配置

内容的提问来源于stack exchange,提问作者OhStack

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 19:15:02