Отображение всплывающей подсказки при касании с помощью TeeChart Mobile iOS

Я хотел бы отображать всплывающую подсказку, когда кто-то касается точки на моем графике. Я безуспешно пробовал SeriesHotspot, Annotations и Marks.

Есть ли способ добиться этого на TeeChart Mobile?

Спасибо за вашу помощь.


person SuperAllumette    schedule 17.04.2013    source источник


Ответы (1)


Инструмент MarksTip по-прежнему недоступен для доступной версии, но мы собираемся добавить его в один из следующих выпусков или отладочных выпусков. Тем временем единственный способ, который я могу придумать, - это использовать событие Click_Series и работать там. Поскольку у вас есть вся необходимая информация, вы сможете отобразить ее на экране, как только пользователь коснется точки серии. Код должен выглядеть так:

Добавление события для серии:

    _controller.chart.ClickSeries += new Steema.TeeChart.TChart.SeriesEventHandler(series_clicked);

И вот метод для вызова:

        private void series_clicked(object sender, Steema.TeeChart.Styles.Series s, int valueIndex, UIGestureRecognizer e) 
    {
        //Console.WriteLine("Series clicked");
        _controller.chart.Tools.Clear();
        _controller.chart.Tools.Add(new Steema.TeeChart.Tools.Annotation());
        int i = _controller.chart.Tools.Count-1;
        (_controller.chart.Tools[i] as Steema.TeeChart.Tools.Annotation).Text = _controller.chart.Series[0].YValues[valueIndex].ToString();
        (_controller.chart.Tools[i] as Steema.TeeChart.Tools.Annotation).Top = 50;
        (_controller.chart.Tools[i] as Steema.TeeChart.Tools.Annotation).Left = 50;
        (_controller.chart.Tools[i] as Steema.TeeChart.Tools.Annotation).Shape.Font.Size = 20;  
        (_controller.chart.Tools[i] as Steema.TeeChart.Tools.Annotation).Shape.Font.Color = UIColor.Red.CGColor;    
        (_controller.chart.Tools[i] as Steema.TeeChart.Tools.Annotation).Shape.Transparent = true;  
    }       

Надеюсь, что это поможет.

С Уважением ! Пеп

person Josep    schedule 19.04.2013
comment
Во-первых, большое спасибо за ваш ответ. Я уже придумал что-то подобное, проблема в том, что аннотация отображается поверх оси Y. Есть ли способ получить положение моей точки? - person SuperAllumette; 19.04.2013
comment
Хорошо, мне удалось сделать то, что я хочу, используя serie.CalcXPos(valueIndex) и serie.CalcYPos(valueIndex). огромное спасибо :) - person SuperAllumette; 19.04.2013