2013-03-31 19 views
1

我的問題是關於setNeedsDisplay方法是在我的UIView子類不調用相同的類中的drawRect。setNeedsDisplay在一個UIView子類(在一個ipad的斯普利特視圖)不調用drawRect

我正在開發一個Ipad應用程序來顯示一個X Y Graph(笛卡爾平面),用戶可以在其中輸入點的座標。 (例如:2,4和2,8:這應該繪製一條垂直的直線)。 我使用了一個主 - 細節應用程序(所以一個分割視圖控制器)。

1)最初UIView子類中的drawRect繪製初始網格。當用戶添加新的點(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)I具有在UIView子類(gridview的方法中,「redrawGrid」的setNeedsDisplay),以調用drawRect爲了重繪具有新數據點的網格。

回答

1

我的猜測是你在drawRect:裏面有問題。在drawRect:方法中放置一個斷點,你應該看到非常快的情況。

還要確保setNeedsDisplay真的被調用。

+0

謝謝您的快速回答。但是,我嘗試將斷點放入drawRect方法,但沒有運氣。 這是我在UIView子類(gridview.m)中的redrawGrid方法: - (void)redrawGrid {self setNeedsDisplay]; } –

+0

@ChristinaWatson哦,我看你確實接受了答案。那麼問題是什麼? – Sulthan

+0

問題是「setNeedsDisplay」似乎沒有調用drawRect函數。不確定我的方法是更好/更新網格(它位於分割視圖的細節視圖中) –