2013-03-31 5 views
1

Мой вопрос о методе setNeedsDisplay, который находится в моем подклассе UIView, который не вызывает drawRect в том же классе.setNeedsDisplay в подклассе UIView (в ipad Splitview), не вызывающем drawRect

Я разрабатываю приложение Ipad для отображения графика X Y (декартовой плоскости), где пользователь может вводить координаты для точек. (например: 2,4 и 2,8: это должна быть прямая вертикальная линия). Я использовал приложение «Мастер-детали» (так что контроллер с раздельным представлением).

1) Первоначально drawRect в подклассе UIView рисует начальную сетку. Мне нужно добавить строки «на лету» в сетку, когда пользователь добавляет новые точки (значения x, y)

2) И после ввода значений x и y (в MasterViewController) я звоню метод обновления точки в UIView подкласса (GridView), как следующее:

- (void) updateGrid 
{ 
    // this is a mutable array of newly created points 
    self.gridview.pointList = self.pointList; 
    [self.gridview redrawGrid]; 
} 

3) у меня есть setNeedsDisplay в методе «redrawGrid» в подкласс UIView (GridView) для вызова DrawRect для того, чтобы перерисовать сетка с новыми точками данных.

ответ

1

Я предполагаю, что у вас есть проблема внутри drawRect:. Поместите контрольную точку внутри метода drawRect:, и вы должны очень быстро увидеть, что происходит.

Также убедитесь, что setNeedsDisplay действительно называется.

+0

Благодарим за быстрый ответ. Но да, я пытался поставить точки останова в метод drawRect, но не повезло. это мой метод redrawGrid в подклассе UIView (gridview.m): - (void) redrawGrid { [self setNeedsDisplay]; } –

+0

@ ChhristinaWatson О, я вижу, вы действительно приняли ответ. В чем была проблема? – Sulthan

+0

проблема «setNeedsDisplay», похоже, не вызывает функцию drawRect. Не уверен, что мой подход лучше обновить/обновить сетку (которая находится в подробном представлении разделенного вида) –

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