gpt4 book ai didi

ios - 通过文件名更改 UIImageView 的颜色

转载 作者:行者123 更新时间:2023-11-28 22:29:54 26 4
gpt4 key购买 nike

我正在尝试更改 UIImageView 颜色,颜色更改代码工作正常但我的问题是该方法应该通过文件名动态更改图像的颜色:

改变帧图像:

- (IBAction)fr1:(id)sender {

mainViewCont.frameImage.image = [UIImage imageNamed:@"sf1.png"];

}
- (IBAction)fr2:(id)sender {
mainViewCont.frameImage.image = [UIImage imageNamed:@"sf2.png"];

}

改变色调:

- (IBAction)frameColor:(UISegmentedControl *)sender {

NSString *imageName ;

for( int i = 0; i < 44 ; i++ ) {

imageName = [NSString stringWithFormat:@"sf%d.png",i];


switch (sender.selectedSegmentIndex) {

case 0:
mainViewCont.frameImage.image = [tintImage imageNamed:imageName withColor:[UIColor blackColor]];
break;

case 1:
mainViewCont.frameImage.image = [tintImage imageNamed:imageName withColor:[UIColor whiteColor]];
break;

default:
break;
}

}
}

现在的问题是只有 44 个数字(最后一张图片)的图像色调发生了变化!!当我按下第 24 帧时,它无法识别第 24 帧图像。

最佳答案

在您的循环中,您设置了 UIImageView 的图像属性 44 次。这意味着您只能看到最后一张图片。您只需要更改已设置为图像的图像的颜色。

您应该向 ViewController 添加两个实例变量。 imageTintColorimageName

您必须添加一个名为 configureView 的方法,该方法使用 imageName 加载图像并设置其 tintColor

在您的 IBAction 中选择图像,您将图像的名称保存在 imageName 中并调用 configureView。在您的 segmentedControl 操作中,您将所选颜色保存在 imageTintColor 中并调用 configureView

基本上是这样的:

- (void)configureView {
UIImage *image = [tintImage imageNamed:self.imageName withColor:self.imageTintColor];
_frame.image = image;
}

- (IBAction)img1:(id)sender {
self.imageName = @"sf1.png";
[self configureView];
}

- (IBAction)img2:(id)sender {
self.imageName = @"sf2.png";
[self configureView];
}

- (IBAction)img3:(id)sender {
self.imageName = @"sf3.png";
[self configureView];
}

- (IBAction)changeColor:(UISegmentedControl *)sender {
NSString *imageName ;
for( int i = 1; i <= 3 ; i++ ) {

imageName = [NSString stringWithFormat:@"sf%d.png",i];

switch (sender.selectedSegmentIndex) {
case 0:
self.imageTintColor = [UIColor blackColor];
break;

case 1:
self.imageTintColor = [UIColor whiteColor];
break;

default:
break;
}
}
[self configureView];
}

关于ios - 通过文件名更改 UIImageView 的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17720120/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com