2013-03-12 30 views
0

我遇到了iOS無法解決的問題。Animate UIImageView丟失中心

我有一個很好的UIImageView動畫。 另外,我有一個setCenter,將UIImageView放置在屏幕上的正確位置,它也很好用。

問題是,當我嘗試設置UIImageView的中心,然後開始動畫,動畫工作,但中心不改變。

動畫代碼:

-(void)startMirror{ 

[UIView animateWithDuration:1.0 
         delay:0.0 
        options:UIViewAnimationOptionRepeat|UIViewAnimationOptionAutoreverse 
       animations:^{ 
        self.transform = CGAffineTransformMakeScale(-1, 1); 
       } 
       completion:^(BOOL completed){}]; 
    } 

主要代碼:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { 

[self.face1 setCenter:CGPointMake(200, 300)]; 
[self.face1 startMirror]; 
} 

我與我的問題做了一個小型的項目,你可以從這裏下載we.tl/0gPqkVDCKK 嘗試註釋並取消線46你會看到我的問題是什麼。

+0

究竟不起作用?我很難理解這個問題。 – 2013-03-13 00:23:29

+0

當我執行「主代碼」時,動畫開始,但UIImageView中心不是200,300。 如果現在你明白了問題,請告訴我。謝謝。 – Tony 2013-03-13 00:26:18

+0

是否有任何代碼與您未顯示的視圖位置相關?因爲我看不出有什麼理由不應該這樣做。 – 2013-03-13 00:30:31

回答

1

我認爲你需要在startMirror中進行轉換後轉換中心點。

0

我找到解決方案,取代:

[self.face1 setCenter:CGPointMake(200, 300)]; 

有:

self.face1.transform = CGAffineTransformMakeTranslation(-11, 80); 

而且在動畫

self.transform = CGAffineTransformScale(self.transform, -1, 1);