iOS:如何使用 UIButton 更改 UIImage [关闭]
Posted
技术标签:
【中文标题】iOS:如何使用 UIButton 更改 UIImage [关闭]【英文标题】:iOS: How to change UIImage with UIButton [closed] 【发布时间】: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 ...];
应该做什么??
【参考方案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];
【讨论】:
以上是关于iOS:如何使用 UIButton 更改 UIImage [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
更改自定义 UIButton 的 TitleColor (iOS 8 + swift)
如何在 iOS 的 UITableView Cell 中为 UIButton 设置标签值?
iOS:如果您长按然后释放它,UIButton 文本不会立即更改