2013-07-26 61 views
0

我只想問如何從NSString的-drawAtPoint方法繪製的屏幕擦除字符串。從drawAtPoint繪製的屏幕擦除字符串

一些細節如下:

繪製函數

void DrawString (NSString * str) 
    { 
     [str drawAtPoint: NSMakePoint(x,y) withAttributes: MyAttributes]; 
    } 

清除功能

void EraseString (NSString * str) 
{ 
     //Code to delete str from the screen. 
} 
+0

刷新源。 –

回答

1

你不 「擦除」 你畫什麼。你只需在下次調用drawRect:時不繪製它。例如,當你設置視圖中的字符串的狀態,撥打setNeedsDisplay:例如:

-(void)setShowString:(BOOL)showString 
{ 
    _showString = showString; 
    [self setNeedsDisplay:YES]; 
} 

然後在您的drawRect:方法,您檢查狀態:

if ([self showString]) 
    [str drawAtPoint: NSMakePoint(x,y) withAttributes: MyAttributes]; 

的字符串將顯示或隱藏的字符串,當你調用setShowString:

或者,你可以設置該字符串值(假設非ARC項目):

-(void)setStr:(NSString*)newString 
{ 
    [newString retain]; 
    [_str release]; 
    _str = newString; 

    [self setNeedsDisplay:YES]; 
} 

並檢查您的drawRect:字符串:

if ([[self str] length] > 0) 
    [_str drawAtPoint: NSMakePoint(x,y) withAttributes: MyAttributes]; 
+0

在我的情況下,我維護一個要顯示的字符串數組。我只是從字符串中刪除它們並使用你的方法。 – doptimusprime