Основной график - отключите масштабирование и прокрутку в направлении у, а не х - PullRequest
1 голос
/ 21 декабря 2011

Я работаю над графиком, отображающим даты по оси X и проценты по оси Y (1-100).У меня есть график, чтобы показать вид, который мне нравится, но я хочу отключить возможность прокручивать и масштабировать график в направлении y, поэтому значения 1-100 всегда отображаются в одном и том же масштабе.Однако я не могу полностью отключить взаимодействие с пользователем, так как я хочу, чтобы пользователь мог прокручивать (и, возможно, масштабировать) в направлении x по мере увеличения числа дат и касаться узлов, чтобы отобразить значения.

Я смог сделать это в s7graphview, который я использовал ранее, но не смог заставить его работать с iOS 5. Кроме того, плавная прокрутка, которую я получил от scrollView в s7, была хорошей для CoreСюжет:)

Ответы [ 2 ]

3 голосов
/ 19 декабря 2012
//for stop vertical scrolling

-(CGPoint)plotSpace:(CPTPlotSpace *)space willDisplaceBy:(CGPoint)displacement{
        return CGPointMake(displacement.x,0);}


-(CPTPlotRange *)plotSpace:(CPTPlotSpace *)space willChangePlotRangeTo:(CPTPlotRange *)newRange forCoordinate:(CPTCoordinate)coordinate{
    if (coordinate == CPTCoordinateY) {
        newRange = ((CPTXYPlotSpace*)space).yRange;
    }
    return newRange;}
2 голосов
/ 22 декабря 2011

Самый простой способ сделать это - установить globalYRange пространства графика на тот же диапазон, что и yRange. Если вам необходимо расширить yRange позже, не забудьте сначала удалить globalYRange (установите значение nil).

Чтобы получить больше контроля, вы можете использовать делегата пространства заговора. Реализуйте этот метод:

-(CPTPlotRange *)plotSpace:(CPTPlotSpace *)space
     willChangePlotRangeTo:(CPTPlotRange *)newRange
             forCoordinate:(CPTCoordinate)coordinate;

Этот метод можно использовать для изменения предложенного изменения в диапазоне графика.

...