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 长按和 Touch Up 里面

更改自定义 UIButton 的 TitleColor (iOS 8 + swift)

如何在 iOS 的 UITableView Cell 中为 UIButton 设置标签值?

iOS:如果您长按然后释放它,UIButton 文本不会立即更改

如何从 Xamarin.ios 访问 UIImagePickerController 快门 UiButton

以编程方式更改UIButton的标题颜色,其标题设置为iOS 7中的属性