2012-03-11 55 views
3

我有一個UIImage我需要翻轉和鏡像。我通過使用UIImageView來完成此操作。我有兩個問題。UIImage翻轉和鏡像

  1. 這並不改變圖像只有視圖。所以,當我使用圖像時,它不會翻轉或出現錯誤。

  2. 如果我使用相同的轉換兩次,它在第二次不做任何事情。

代碼示例:(我是新來的IOS編程和我的任何不良代碼抱歉)

調用翻轉:

// ImageHolder is a UIImageView 
ImageHolder = [self flip:ImageHolder FlipType:@"V"]; 

它稱之爲:

- (UIImageView *)flip:(UIImageView *) fvImageView FlipType:(NSString *)FlipType { 

    UIImageView *newView = [[UIImageView alloc] init]; 
    newView = fvImageView; 
    if (FlipType == @"V"){ 
     newView.transform = CGAffineTransformMakeScale(-1, 1); 
    } else if (FlipType == @"H"){ 
     newView.transform = CGAffineTransformMakeScale(1, -1); 
    }else if (FlipType == @"VH"){ 
     newView.transform = CGAffineTransformMakeScale(-1, -1); 
    }else if (FlipType == @"N"){ 
     newView.transform = CGAffineTransformMakeScale(1, 1); 
    } 
    return newView; 
    [newView release]; newView= nil; 
} 

感謝您的幫助!

+0

我已更新代碼謝謝RakeshNSS! 我仍然不知道我不能連續做兩次。我希望能夠來回翻轉。 – Kunadiso 2012-03-11 19:12:19

+0

我剛剛檢查過,如果我保存圖像,它不是隻翻轉圖像視圖。我需要翻轉圖像。 – Kunadiso 2012-03-11 19:15:10

+0

使用'return [newView autorelease];'因爲你在釋放之後釋放不會觸發。 – Simon 2012-03-11 21:00:45

回答

0

圖像沒有因爲翻轉,您釋放圖像

[newView release]; 

然後使它零

newView= nil; 

,然後返回

return newView; 

結果是你返回一個零值做了一些操作之後。我認爲只需對「fvImageView」對象進行更改即可,該對象作爲函數的參數傳遞。

+0

謝謝!我應該看到這一點。 現在我已經有了這部分工作,它仍然不會讓我連續兩次這樣做。我希望能夠在保持翻轉狀態的情況下來回翻轉它。有什麼想法嗎? – Kunadiso 2012-03-11 19:08:49