我有两张用于显示开/关的图像。一切都很完美。当我的设计师要求更换图像时,我替换了图像并替换了类中图像的名称。突然间,转换不再发生了。我使用了[button setImage:image forState:UIControlStateNormal];
条件。我的病情很好。但图像永远不会改变。用旧图像替换这些图像对于相同的代码非常有效。
现在,我再次将其替换为新图像,并为Button添加了setBackgroundColor。奇怪的是,图像正在被取代。如果我拿走backgroundColor方法它就不起作用了。有谁知道为什么会这样?我认为图像也被设置为背景图像。但我没有在任何地方使用单个代码来设置背景图像。
更新
这是我设置图片的地方。在viewDidLoad中的位置
selectedImage = [UIImage imageNamed:kcheckSelected];
notSelectedImage = [UIImage imageNamed:kcheckUnselect];
-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *identifier = @"cellIdentifier";
UITableViewCell *cell = [tableview dequeueReusableCellWithIdentifier:identifier];
if (cell == nil)
{
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
UIView *view = [[UIView alloc]initWithFrame:CGRectMake(15, 0, tableview.frame.size.width - 15, 1)];
view.backgroundColor = [UIColor lightGrayColor];
[cell.contentView addSubview:view];
}
NSString *sltd= [selectionArray objectAtIndex:indexPath.row];
UIImage *image = nil;
UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(tableview.frame.size.width - 60, 5, 60, 50)];
if ([sltd isEqualToString:@"yes"])
{
image = selectedImage;
}
else
{
image = notSelectedImage;
}
[button setBackgroundColor:[UIColor whiteColor]];
button.tag = indexPath.row;
[button addTarget:self action:@selector(selectButton:) forControlEvents:UIControlEventTouchUpInside];
[button setImage:image forState:UIControlStateNormal];
[cell.contentView addSubview:button];
[cell.contentView bringSubviewToFront:button];
User *userObj = [userArray objectAtIndex:indexPath.row];
cell.textLabel.text = userObj.name;
cell.textLabel.font = [UIFont fontWithName:@"Montserrat-Regular" size:17];
if ([userObj.installOnIpad boolValue] == YES)
{
cell.imageView.image = [UIImage imageNamed:@"ipad-icon-active"];
}
else
{
cell.imageView.image = [UIImage imageNamed:@"ipad-icon-disabled"];
}
[cell setSelectionStyle:UITableViewCellSelectionStyleNone];
return cell;
}