当前位置: 首页 > 知识库问答 >
问题:

使用按钮更改图像位置

戚研
2023-03-14

我想用一个按钮在三个不同的位置改变图像的位置...用我的代码图像只移动了一个位置...

ViewController.h

@property (weak, nonatomic) IBOutlet UIImageView *Switch3Way;

- (IBAction)Switch3WayPressed:(id)sender;

ViewController.m

- (void)Switch3WayPressed:(id)sender {
CGRect frame = Switch3Way.frame;
frame.origin.x = 323;
frame.origin.y = 262;
Switch3Way.frame = frame;

}

共有1个答案

淳于烈
2023-03-14

下面的代码假设您希望对Switch3Way UIImageView IBOutlet属性进行动画化。此代码段将把您的UIImageView移动到三个不同的位置,并在最后一个位置停止动画。

#import <QuartzCore/QuartzCore.h>    

-(IBAction)move:(id)sender
{
    CGPoint firstPosition = CGPointMake(someXvalue, someYvalue);
    CGPoint secondPosition = CGPointMake(someXvalue, someYvalue);
    CGPoint thirdPosition  = CGPointMake(someXvalue, someYvalue);

    CABasicAnimation *posOne = [CABasicAnimation animationWithKeyPath:@"position"];
    posOne.fromValue = [NSValue valueWithCGPoint:_Switch3Way.layer.position];
    posOne.toValue   = [NSValue valueWithCGPoint:firstPosition];
    posOne.beginTime = 0;
    posOne.duration  = 1;

    CABasicAnimation *posTwo = [CABasicAnimation animationWithKeyPath:@"position"];
    posTwo.fromValue = [NSValue valueWithCGPoint:firstPosition];
    posTwo.toValue   = [NSValue valueWithCGPoint:secondPosition];
    posTwo.beginTime = 1;
    posTwo.duration  = 1;

    CABasicAnimation *posThree = [CABasicAnimation animationWithKeyPath:@"position"];
    posThree.fromValue = [NSValue valueWithCGPoint:secondPosition];
    posThree.toValue   = [NSValue valueWithCGPoint:thirdPosition];
    posThree.beginTime = 2;
    posThree.duration  = 1;

    CAAnimationGroup *anims = [CAAnimationGroup animation];
    anims.animations = [NSArray arrayWithObjects:posOne, posTwo, posThree, nil];
    anims.duration = 3;
    anims.fillMode = kCAFillModeForwards;
    anims.removedOnCompletion = NO;

    [_Switch3Way.layer addAnimation:anims forKey:nil];

    _Switch3Way.layer.position = thirdPosition;
}

Invasivecode有一个关于创建动画的非常好的系列教程,您可以参考http://weblog.Invasivecode.com/post/4448661320/core-animation-part-iii-basic-animations您最终会希望使用CAKeyframeAnimationhtml" target="_blank">对象来创建这些类型的动画,但是了解CABasicAnimations是开始使用coreanimation创建动画的一个好方法。

 类似资料:
  • 我刚刚在文件夹下添加了一个新的可绘制文件夹。在drawable文件夹中,我复制了ic\U启动器。png文件来自可绘制hdpi文件夹。当我按下按钮时,我想通过新的图像更改标准的图像按钮。我写了一些代码,但当我启动应用程序时,它崩溃了。 编辑:我改成了这个,这个也不行。 编辑2:这很有效。感谢大家。

  • 问题内容: 因此,我可以使用创建带有图像的输入按钮 但是,使用CSS无法获得相同的行为。例如,我尝试过 其中“ myButton”在CSS文件中定义为 如果这只是我想做的,则可以使用原始样式,但是我想更改悬停时按钮的外观(使用类)。我知道链接很好,因为我已经能够将它们加载为页面其他部分的背景图像(仅作为检查)。我在网上找到了使用JavaScript进行操作的示例,但我正在寻找CSS解决方案。 我正

  • 我能找到的每个更改按钮图像的示例都显示了当单击该按钮时如何更改它。但是我如何点击一个切换按钮,并让它改变一个常规按钮的图像呢? 关于更多细节,我有两个按钮和一个onCheckedChanged事件: 当按下切换按钮并发生onCheckedChanged事件时,我需要将btn1的背景设置为新图像。

  • 我 https://github.com/futuresimple/android-floating-action-button 使用了这个库。如何更改主按钮的图像?我想在选择其中一个较小的按钮后立即更改按钮图像。

  • 我正在使用javaFX。我做了一个按钮并为此设置了一个图像。代码是: 但是我想当我点击按钮时,图像会变成另一张图片。我该怎么做呢?

  • 问题内容: 我正在使用谷歌地图,我需要更改“我的位置”(当前位置按钮)的位置。当前当前位置按钮在右上角。因此,请帮助我如何在Google地图屏幕上重新定位当前位置按钮。提前致谢。 我的示例代码: 问题答案: 你可以用这个