gpt4 book ai didi

ios - UITableView 中的复选框

转载 作者:行者123 更新时间:2023-11-28 22:18:39 25 4
gpt4 key购买 nike

在 UITableView 中,我想放置选中取消选中按钮,当我单击第一行 [indexpath.row=0] 时,其余行将取消选中,当单击 indexpath.row>0 时,row=0 取消选中。我必须反之亦然,

最初我拿了一个数组,其中所有对象都未选中,当检查它时索引将替换对象检查,

for(int i=0; i<[carwasharray count]; i++)
{
[arrayCheckUnchek addObject:@"Uncheck"];
}
/cell row at indexpath my code is
cell.textLabel.text = [carwasharray objectAtIndex:indexPath.row];
if (indexPath.row==0) {
button1 = [UIButton buttonWithType:UIButtonTypeCustom];
[button1 setImage:[UIImage imageNamed:@"uncheck_icon.png"] forState:UIControlStateNormal];
[button1 addTarget:self action:@selector(buttonClic:) forControlEvents:UIControlEventTouchUpInside];
button1.tag=1;
[button1 setFrame:CGRectMake(150.0, 7.0, 30.0, 30.0)];
[cell.contentView addSubview:button1];
}
else{
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setFrame:CGRectMake(150.0, 7.0, 30.0, 30.0)];
button.tag=2;
if([[arrayCheckUnchek objectAtIndex:indexPath.row] isEqualToString:@"Uncheck"])
[button setImage:[UIImage imageNamed:@"uncheck_icon.png"] forState:UIControlStateNormal];
else
[button setImage:[UIImage imageNamed:@"check_icon"] forState:UIControlStateNormal];

[button addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
[cell.contentView addSubview:button];
}
return cell;

-(void)buttonClic:(id)sender
{
//Getting the indexPath of cell of clicked button
CGPoint touchPoint = [sender convertPoint:CGPointZero toView:carwashtable];
NSIndexPath *indexPath = [carwashtable indexPathForRowAtPoint:touchPoint];
UIButton *button = (UIButton *)sender;
if (button1.tag==1)
{
if([[arrayCheckUnchek objectAtIndex:indexPath.row] isEqualToString:@"Uncheck"])
{

//[button1 setImage:[UIImage imageNamed:@"check_icon.png"] forState:UIControlStateNormal];
//[button setImage:[UIImage imageNamed:@"uncheck.png"] forState:UIControlStateNormal];
// [arrayCheckUnchek replaceObjectAtIndex:indexPath.row withObject:@"Check"];
button.tag=3;
[self buttonClicked:button];
}
else
{
//[button1 setImage:[UIImage imageNamed:@"check_icon.png"] forState:UIControlStateNormal];
[arrayCheckUnchek replaceObjectAtIndex:indexPath.row withObject:@"Check"];

button.tag=3;
[self buttonClicked:button];

}
}
else if(button1.tag==0){
[button1 setImage:[UIImage imageNamed:@"uncheck_icon.png"] forState:UIControlStateNormal];

}

-(void)buttonClicked:(id)sender
{
//Getting the indexPath of cell of clicked button
CGPoint touchPoint = [sender convertPoint:CGPointZero toView:carwashtable];
NSIndexPath *indexPath = [carwashtable indexPathForRowAtPoint:touchPoint];
// No need to use tag sender will keep the reference of clicked button
UIButton *button = (UIButton *)sender;
if (button.tag==2) {
if([[arrayCheckUnchek objectAtIndex:indexPath.row] isEqualToString:@"Uncheck"])
{
[button setImage:[UIImage imageNamed:@"check_icon.png"] forState:UIControlStateNormal];
[button1 setImage:[UIImage imageNamed:@"uncheck_icon.png"] forState:UIControlStateNormal];
[arrayCheckUnchek replaceObjectAtIndex:indexPath.row withObject:@"Check"];

button1.tag=1;
}
else
{
[button setImage:[UIImage imageNamed:@"uncheck_icon.png"] forState:UIControlStateNormal];
[arrayCheckUnchek replaceObjectAtIndex:indexPath.row withObject:@"Uncheck"];

}
}
else
{
if ([[arrayCheckUnchek objectAtIndex:indexPath.row] isEqualToString:@"Check"]) {
[button setImage:[UIImage imageNamed:@"uncheck_icon.png"] forState:UIControlStateNormal];


}
[button1 setImage:[UIImage imageNamed:@"check_icon.png"] forState:UIControlStateNormal];

}

现在它只在我点击 row=1 时工作 1st 次,row=0 将取消选中,直到这个 ok,但是当我重新选中 row=0 时它也会检查..

提前致谢

最佳答案

UITableView 仅显示您想要的 UITableViewCell。

我建议创建一个原型(prototype)单元格来保存您的文本和“CheckBox”

这是一个页面,展示了创建自定义 UITableViewCell 对象的几种不同方法。

http://mobile.tutsplus.com/tutorials/iphone/customizing-uitableview-cell/

了解如何完成任务与完成任务本身一样重要。

关于ios - UITableView 中的复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20988200/

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