【问题标题】:iOS: How to change UIImage with UIButton [closed]iOS:如何使用 UIButton 更改 UIImage [关闭]
【发布时间】:2014-09-09 23:14:02
【问题描述】:

这可能很简单,但我对开发 iOS 应用程序很陌生。我有一个 UIButton 和三个 UIImage。我想要做的是,当用户点击按钮时,将显示第一张图像,如果用户再次点击它,则显示第二张图像,依此类推。显示最后一张图像时,再次点击按钮返回第一个图像。问题是只出现第一张图片。

这是我的代码:

文件.h

@interface ViewController : UIViewController
{

IBOutlet UIImageView *images;

}

-(IBAction)changeImage:(id)sender;

@end

文件.m

@implementation ViewController

-(IBAction)changeImage:(id)sender{

images.image = [UIImage imageNamed:@"pic1.png"], [UIImage imageNamed:@"pic2.png"],[UIImage imageNamed:@"pic3.png"];

}

任何帮助将不胜感激!

比你提前!

【问题讨论】:

  • 你认为image = [UIImage ...], [UIImage ...], [UIImage ...];应该做什么??

标签: ios objective-c iphone uibutton uiimage


【解决方案1】:

您可以为索引和全局变量数组声明一个全局变量来保存图像名称

self.index = 0;
self.imageList = [NSArray arrayWithObjects:@"pic1", @"pic2", @"pic3", nil];

那么在点击动作中,你可以这样做

-(IBAction)changeImage:(id)sender{
    images.image = [UImage imageNamed:self.imageList[self.index]];
    self.index = (self.index + 1 ) % [self.imageList count];
}

我没有编译器来验证语法,但你明白了。

【讨论】:

  • 我还推荐一本关于 iOS 开发的书。这将教你一些基础知识。你用其他语言开发过吗?
【解决方案2】:

这很简单,在 viewDidLoad 中创建一个名为 tapCounter 的计数器。假设您已经在 viewDidLoad 中设置了图像数组,如下所示。确保 images 和 tapCounter 是你的类的属性

- (void)viewDidLoad {
 [super viewDidLoad];
self.images = @[[UIImage imageNamed:@"pic1.png"], [UIImage imageNamed:@"pic2.png"],[UIImage imageNamed:@"pic3.png"]];


self.tapCounter = 0;
}


-(IBAction)changeImage:(id)sender {

    UIButton *but = (UIButton *)sender;
    tapCounter++;

    if (tapCounter == 4) {
       tapCounter = 1;
    }

    [but setBackgroundImage:[images objectAtIndex:tapCounter-1] forState:UIControlStateNormal];

    }
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-10
    • 1970-01-01
    • 2016-07-26
    • 2016-08-11
    • 2014-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多