【发布时间】:2013-07-17 04:57:00
【问题描述】:
我正在尝试更改 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 帧。
【问题讨论】:
-
你知道循环在这里做什么吗?
imageName正在被覆盖,最后它将包含imageName = sf43.png -
@TheTiger 我编辑了帖子和代码,但没有任何改变
-
从你的问题问题不清楚,但你可以使用Tag,不明白你为什么使用循环。
-
当然它只会改变最后一张图片。在您的循环中,您将覆盖 frameImage 的图像属性(可能是 UIImageView)44 次。这没有多大意义。
标签: ios uiimageview