2012-01-09 5 views
2

Хорошо, я могу создать сюжет. Но если я хочу, чтобы график получал данные по одному за раз с интервалом в 1 секунду, я не знаю, как заставить его работать, а не перерисовывать сюжет каждый раз. Какую методологию я должен применять для добавления дополнительных точек данных в подклассы сюжета UIView?Как обновить участок с помощью drawRect с подклассом UIView?

- (id)initWithFrame:(CGRect)frame { 

    self = [super initWithFrame:frame]; 
    if (self) { 
     // Initialization code. 
    } 
    return self; 
} 


- (void)drawRect:(CGRect)rect { 
    // Drawing code. 
} 

- (void)addSample: ??{ 
    ??? 
} 

ТНХ

ответ

1

Предположит, что ваш сюжет использует набор данных, который находится в изменяемой коллекции, как NSMutableArray, и что ваш -drawRect: тянет из этой коллекции, то ваш метод -addSample: просто нужен добавить его точки данных эту коллекцию, а затем вызвать вид -setNeedsDisplay. Затем ваш -drawRect: вызывается на следующей итерации через цикл выполнения, тем самым перерисовывая график.

+0

Я просто хочу добавить еще один пункт в сюжет, а не перерисовать весь сюжет. ?? – Woof

+0

Если вы делаете это только каждую секунду, перерисовка всего этого будет иметь незначительное влияние на производительность. Обычно такой график нужно перерисовывать повторно, поскольку его набор данных растет, будь то корректировать масштаб или удалять старые точки данных. Есть ли какая-то причина, которая здесь не вызывает беспокойства? –

+0

Я буду устанавливать границы сюжета в самом начале. Я не хочу изменять размер сюжета. Там в конечном итоге будет до 10 000 пунктов на участке. – Woof

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