gpt4 book ai didi

iOS 更改 BackgroundImage

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

我想在表格 View 中创建一个简单的复选框。首先,我在 Storyboard中创建 View ,每个元素在单元格中都有一个标签。然后我在 Controller.m 中编写了代码

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
...
UIButton *checkbox = (UIButton *)[cell viewWithTag:103];
checkbox.selected = NO;

[checkbox setBackgroundImage:[UIImage imageNamed:@"uCheckbox2px"] forState:UIControlStateNormal];

[checkbox addTarget:self action:@selector(changeState:) forControlEvents:UIControlEventTouchUpInside];
...
}

-(void) changeState:(UIButton *)checkbox
{

checkbox.selected = !checkbox.selected;
if (checkbox.selected)
[checkbox setBackgroundImage:[UIImage imageNamed:@"cCheckbox2px"] forState:UIControlStateSelected];
else
[checkbox setBackgroundImage:[UIImage imageNamed:@"uCheckbox2px"] forState:UIControlStateNormal];

但是如果我点击按钮,图像不会改变。为什么会这样以及我如何解决它?感谢您的帮助!

最佳答案

这是因为每次调用 cellForRowAtIndexPath: checkbox.selected = NO; 都会使所选属性FALSE。所以在那之后,在 changeState:,

checkbox.selected = !checkbox.selected;

会将所选属性更改为 TRUE。因此,无论何时点击按钮,所选属性都只会变为 TRUE。所以将 checkbox.selected = NO; 移动到 if(cell == nil) 条件

的内部

关于iOS 更改 BackgroundImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19787385/

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