2013-10-25 66 views
1

我有下面的代碼:的CALayer用的UIImageView

IBOutlet UIImageView *img_Logo; 

...

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ 
    CALayer *ca_Logo = img_Logo.layer; 
    ca_Logo.position = CGPointMake(400, 400); 
    ca_Logo.duration = 2.0f; 

    [ca_Logo setNeedsDisplay]; 

} 

當觸發觸摸事件,標誌會消失,但是當我刪除ca_Logo.duration = 2.0f,即ca_Logo將移動,但它不是一個動畫,只是瞬間消失並出現在一個新的位置。

它有什麼問題嗎? img_LogoUIImageViewIBOutlet或我需要編程它沒有接口生成器?

我想移動圖像從CGPointMake(400, 400)CGPointMake(200, 400)

+0

你想達到什麼效果 – Jing

+0

我想將圖像從CGPointMake(400,400)移動到CGPointMake(200,400) –

+0

只需改變你的UIImgeView的框架。不需要挖掘圖層,也不需要重新繪製圖層 – Jing

回答

1

如果你只是想從一個幀到另一個動畫,請嘗試以下:

[UIView animateWithDuration:1.0 animations:^{ 
     [self.img_Logo setFrame:CGRectMake(200, 400, youImageViewWidth, youImageViewHeight)]; 
    }]; 

我使用的touchesBegan不明白你的意思,並touchesMoved

3

我認爲你需要它,而無需使用接口Builder程序試試這個代碼

UIImage *image = [UIImage imageNamed:@"img_Logo.png"]; 
CALayer *img = [CALayer layer]; 
img.contents = (id)image.CGImage; 
img.bounds = CGRectMake(0, 0, 100, 200); 
img.position = CGPointMake(400, 400); 
[self.view.layer addSublayer:img];