在Xcode中,如何在一个UIImageView中将一个按钮更改为不同的图像?

时间:2012-07-16 17:02:01

标签: xcode button uiimageview

我已经看过google和堆栈流,虽然我已经找到类似的响应,但在我开始寻找解决此问题的方法之前,我仍然没有更明智。

我有一个按钮,每次按下我希望它显示下一个图像。

我相信我必须在我的项目中设置一个包含所有图像的数组才能执行此操作,然后可能会像按钮的计数器那样知道要在UIImageView中显示哪个图像。

所以项目是这样的:

1个视图控制器,带有1个UIImageView,1个按钮,并说5个图像。

UIImageView占据整个屏幕,UIImageView中显示的图像1,按下按钮,显示图像2,按下按钮再次显示图像3,依此类推,直到您到达图像5,一次在图像5,如果按下按钮再次,它将回到开始(图1)。

我是新手,我想要一些示例代码来帮助取悦,不要复制和粘贴,而是要研究它是如何工作的,以及我如何在我的应用程序中实现类似的。

我希望这是有道理的。我还没有用这个术语,所以这个白痴证明建议会很好。

1 个答案:

答案 0 :(得分:1)

好的我刚刚在这里为你做了一些例子

在.h

中定义
UIButton *b;
UIImageView *i;
NSArray *a;
int count;

并在.m

中写下这些内容
- (void)viewDidLoad
{
    [super viewDidLoad];

    b = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    b.frame = CGRectMake(0, 0, 100 ,100);
    [b addTarget:self action:@selector(changeImage) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:b];

    i = [[UIImageView alloc]initWithFrame:CGRectMake(0, 100, 100, 100)];
    [self.view addSubview:i];

    a = [NSArray array];
    //init array with images what you have

    count = 0;
    [i setImage:[a objectAtIndex:count]];
}

-(void) changeImage{
    count = ++count%5;
    [i setImage:[a objectAtIndex:count]];
}

不要遵循我的命名惯例,这是一个例子。你应该写得很好。 放入图像后,这应该可以工作。如果您有问题,请告诉我,但请在询问之前先google。