1

我有以下代码:

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_Logo是一个UIImageViewwithIBOutlet还是我需要在没有 Interface builder 的情况下对其进行编程?

我想将图像CGPointMake(400, 400)CGPointMake(200, 400)

4

2 回答 2

3

我认为您需要在不使用界面生成器的情况下对其进行编程尝试此代码

    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]; 
于 2013-10-25T04:21:29.153 回答
1

如果您只想从一帧动画到另一帧,请尝试以下操作:

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

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

于 2013-10-25T02:54:46.780 回答