0

を使用してIOSで描画に取り組んでいるcoregraphicsので、キャンバスに画像を描画してフォトアブラムに保存し、後でこのコードを使用してキャンバス上のフォトアルバムから同じ描画画像をロードします

[imageFromAlbum drawnInRect:self.bounds];

これにより、キャンバスに画像が表示されます。この画像に2本の線を描画し、元に戻すをクリックします.元に戻すの最初のクリックで、最初の線が消え、元に戻すの2回目のクリックで、画像と一緒に残りの線が消えますが、その画像が消えないようにしたい元に戻すをクリックすると消えます。

この問題を解決する方法。

以下のコメントに基づいて編集します。元に戻すをクリックすると、この関数を呼び出します

-(void)redrawLine
{
    UIGraphicsBeginImageContextWithOptions(self.bounds.size, NO, 0.0);
    [self.layer renderInContext:UIGraphicsGetCurrentContext()]; 

    NSDictionary *lineInfo = [m_undoArray lastObject];
    m_curImage = [lineInfo valueForKey:@"IMAGE"];   
    UIGraphicsEndImageContext();

    [self setNeedsDisplayInRect:self.bounds];  
   drawstep = UNDO;
}

- (void)drawRect:(CGRect)rect
{
        case UNDO:
        {
            [m_curImage drawInRect:self.bounds];            
        }
            break;
}
4

0 に答える 0