2015-03-17 3 views
0

Вот фотография, которая, я думаю, быстро иллюстрирует проблему. Вам нужно загрузить только пример из git-хаба, перейдите к примеру кривого разброса и нажмите на точку, чтобы отобразить точки-аннотации, а затем просто прокрутите график, чтобы переместить точки с графика.Аннотации Coreplot рисуют по оси

enter image description here

Так обычно мы хотели бы аннотаций с плавающей выше всего, но в течение времени, когда мы устанавливаем axisContraints, в этом случае мы устанавливаем их:

x.axisConstraints = [CPTConstraints constraintWithRelativeOffset:0.5]; 
y.axisConstraints = [CPTConstraints constraintWithLowerOffset:0.0]; 

Мы хотим, аннотаций, что мы добавим , которые будут отображаться так же, как линии сетки, линии графика и точки графика.

Я пробовал следующее в качестве теста, чтобы узнать, что произойдет, и это НЕ поможет.

// reorder layer 
[annotationHostLayer insertSublayer:annotation.contentLayer atIndex:0]; 
[annotationHostLayer setNeedsDisplay]; 

Он будет рисовать линии сетки, осей по аннотации, но аннотации все еще плавают график.

Я использую образец кода от coreplot, вот github link, и диаграмма, с которой я экспериментировал, - это график «Кривый график рассеяния».

Обновление: Я обманывал с помощью маски ToBorder и maskToBounds для plotArea. Кажется, что маскирование к границам будет работать, если ось будет нарисована в границах слоев, а это не так. Это зажигает яксис. Я просмотрел другой код отсечения, но безрезультатно.

ответ

1

Скрыть слои содержимого любых аннотаций, которые выходят за пределы требуемой области. Используйте делегат пространственного пространства, чтобы отслеживать изменения в пространстве сюжета и показывать или скрывать аннотации по мере необходимости.

+0

Еще раз приветствую вас. Вы ответ, вероятно, лучший/менее хлопотный способ устранения этой проблемы. Предпочтительно, я хотел бы найти способ выяснить, почему аннотации не обрезаются правильно. Я бы хотел, чтобы они вели себя как линии, линии сетки и ось х. Я думал, что annotationHostLayer должен просто скопировать аннотации, используя свойство mask to bounds, но это просто не влияет на аннотации таким образом. Есть ли у вас какие-либо идеи относительно того, почему это не так? – Biclops

+0

Каков ваш уровень хоста? Если вы добавите аннотации к сюжету, они должны быть привязаны к области графика. –

+0

Вы бы подумали? Вот ссылка http://pastebin.com/iQ8dTUsq Ничего особенного в том, чтобы просто вставлять аннотацию в сюжетную область. – Biclops

Смежные вопросы