这是我正在使用的代码, selectindex是BOOL
new \DateTime->format('Y-m-d H:i:s')
我的问题是当用户选择我的按钮时它正确地改变颜色,当用户尝试选择另一个按钮时,它继续使用之前的bool值。
- >我的要求是当用户点击按钮时颜色必须改变。
- >第二,当用户选择相同的按钮时,颜色必须改变。
- >按钮放在tableview里面每个按钮都有标签,我试图改变使用标签值但是失败了。任何人请帮助我....
第三方Tableview标题部分:
if(!selectindex)
{
click.backgroundColor=[UIColor colorFromHexString:@"#ffc400"];
selectindex=YES;
}
else
{
click.backgroundColor=[UIColor grayColor];
selectindex=NO;
}
最初选择索引 - > 否。
当用户选择按钮颜色改变时。
现在selectIndex值为是; 当用户尝试选择另一个按钮时, selectIndex值继续为真。当用户第二次单击该按钮时,其颜色已更改。 请注意按钮选择应为多个:
答案 0 :(得分:2)
您应该为字典或班级中的每个单元格保存状态
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return [yourArray count];
}
并在
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
NSMutableDictionary *dictionary = [yourArray objectAtIndex:indexPath.row];
if(dictionary[@“selectindex”] ==NO )
{
click.backgroundColor=[UIColor colorFromHexString:@"#ffc400"];
NSLog(@"kishore kumar”);
[dictionary setValue:YES forKey:@“ selectindex”];
}else{
click.backgroundColor=[UIColor grayColor];
[dictionary setValue:NO forKey:@“selectindex”];
}
答案 1 :(得分:0)
请详细说明,按照我的理解给出答案。
首先选择一个NSMutableArray *arr_index;
在按钮上单击将当前IndexPath存储到arr_index
&重装表
在tableview的cellforRow方法中写下代码
if([arr_index containsObject:indexPath])
{
// change your button bgColor
}
else
{
// Default Color for button
}
答案 2 :(得分:0)
// chekMarkArray最初包含0.// [checkMarkArray addObject:@(0)];
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
//………
BOOL selectindex = [[chekMarkArray objectAtIndex:indexPath.row] boolValue];
if (!selectindex) {
testButton.backgroundColor = [UIColor greenColor];//[UIColor colorFromHexString:@"#ffc400"];
}else{
testButton.backgroundColor = [UIColor redColor];
}
//………..
return cell;
}
-(IBAction)buttonPressed:(id)sender{
UIButton *button = (UIButton*)sender;
BOOL currentStatus = [[chekMarkArray objectAtIndex:button.tag] boolValue];
//deselect all selection
for (int i=0;i<chekMarkArray.count;i++) {
[chekMarkArray replaceObjectAtIndex:i withObject:@(0)];
}
//select current button
[chekMarkArray replaceObjectAtIndex:button.tag withObject:@(!currentStatus)];
[self.tableView reloadData];
}
答案 3 :(得分:0)
您可以轻松地按照此方法执行此操作。 每个按钮都有一个名为“selected”的属性。您可以使用它而不是为每个单独的按钮创建BOOL变量。 假设您的按钮名称为“click”,只需检查按钮的状态并按
设置颜色if(click.selected){
click.backgroundColor=[UIColor colorFromHexString:@"#ffc400"];
}
else{
click.backgroundColor=[UIColor grayColor];
}
由于selected是一个属性,其BOOL值由其内置函数处理,因此您不必将其设置为YES或NO。
编辑:
找到一种更简单的方法。 将选定和未选定按钮的图像作为资源添加到项目中并进行设置。
`[button setBackgroundImage:[UIImage imageNamed:@“selected.png”] forState:UIControlStateSelected];
[button setBackgroundImage:[UIImage imageNamed:@“unselected.png”] forState:UIControlStateNormal]; `
答案 4 :(得分:0)
检查UITreeView它是否具有功能
答案 5 :(得分:0)
最后,我找到了回复感谢你的回复朋友......
-(void)touchup:(UIButton*)click
{
if(click.selected==NO)
{
click.backgroundColor=[UIColor colorFromHexString:@"#ffc400"];
click.selected=YES;
}
else
{
click.backgroundColor=[UIColor grayColor];
click.selected=NO;
}
}
选择的默认状态为NO。
@property(nonatomic,getter=isSelected) BOOL selected; // default is NO may be used by some subclasses or by application