【发布时间】:2015-08-21 16:43:19
【问题描述】:
我只想使用UIButton 代替复选标记我成功添加按钮并使其在选择行时作为复选标记但只有行选择是工作按钮不明智不是我想让它工作按钮以及单元格选择截图:
http://i.imgur.com/aXiBsfU.png
http://i.imgur.com/hQddEGk.png
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if (indexPath.row==0)
{
if (selectAll==0)
{
selectAll=1;
[self.arrForIndPaths removeAllObjects];
}
else
{
selectAll=0;
[self.arrForIndPaths removeAllObjects];
}
}
else
{
if (selectAll!=1)
{
if([self.arrForIndPaths containsObject:indexPath])
{
[self.arrForIndPaths removeObject:indexPath];
}
else
{
[self.arrForIndPaths addObject:indexPath];
}
}
else
{
selectAll=0;
if([self.arrForIndPaths containsObject:indexPath])
{
[self.arrForIndPaths removeObject:indexPath];
}
else
{[self.arrForIndPaths addObject:indexPath];}}}[tableView reloadData];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static const NSInteger btnTag = 1;
static NSString *MyIdentifier = @"SearchResult";
UITableViewCell *cell;
if (cell == nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:MyIdentifier];
}
UILabel *lblText = [[UILabel alloc]initWithFrame:CGRectMake(40, 0, 400, 55)];
UIButton *btnCheck = [[UIButton alloc]initWithFrame:CGRectMake(845, 10, 35, 28)];
btnCheck.contentVerticalAlignment = UIControlContentVerticalAlignmentBottom;
btnCheck.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
[btnCheck setImage:[UIImage imageNamed:@"checkbox_white.png"] forState:UIControlStateNormal];
[btnCheck setImage:[UIImage imageNamed:@"checked_white.png"] forState:UIControlStateSelected];
[btnCheck setImage:[UIImage imageNamed:@"checked_white.png"] forState:UIControlStateHighlighted];
[btnCheck addTarget:self action:@selector(doneBtn:) forControlEvents:UIControlEventTouchUpInside];
btnCheck.tag = btnTag;
[cell.contentView addSubview:lblText];
[cell addSubview:btnCheck];
if ( UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad )
{
if (indexPath.row==0)
{
lblText.textColor =[self colorWithHexString:@"333333"];
lblText.font=[UIFont fontWithName:@"VERDANA" size:30];
}
else
{
lblText.textColor=[self colorWithHexString:@"333333"];
lblText.font=[UIFont fontWithName:@"VERDANA" size:20];
}
}
else
{
if (indexPath.row==0)
{
lblText.textColor=[self colorWithHexString:@"333333"];
lblText.font=[UIFont fontWithName:@"VERDANA" size:18];
}
else
{
lblText.textColor=[self colorWithHexString:@"333333"];
lblText.font=[UIFont fontWithName:@"VERDANA" size:16];
}
}
lblText.text=[arrFacilities objectAtIndex:indexPath.row];
lblText.textAlignment=NSTextAlignmentLeft;
if (selectAll==1)
{
[cell setAccessoryType:UITableViewCellAccessoryCheckmark];
[btnCheck setImage:[UIImage imageNamed:@"checked_white.png"] forState:UIControlStateNormal];
}
else
{
if([self.arrForIndPaths containsObject:indexPath])
{
[cell setAccessoryType:UITableViewCellAccessoryCheckmark];
[btnCheck setImage:[UIImage imageNamed:@"checked_white.png"] forState:UIControlStateNormal];
}
else
{
[cell setAccessoryType:UITableViewCellAccessoryNone];
[btnCheck setImage:[UIImage imageNamed:@"checkbox_white.png"]forState:UIControlStateNormal];
}
}
cell.textLabel.numberOfLines=0;
cell.textLabel.lineBreakMode=NSLineBreakByWordWrapping;
return cell;
}
- (void)doneBtn:(UIButton*)sender
{
UIButton *btn = (UIButton*)sender;
}
提前致谢。
【问题讨论】:
-
你的意思是在单元格选择上它可以工作,但是在按钮上点击它不起作用,你希望它对按钮点击和单元格选择都有效。
-
仍然单击单元格工作,但按钮工作(选择所有按钮不起作用)实际上我希望按钮工作与工作单元格相同,或者单击单元格或按要求选择按钮,谢谢
-
@iDeepak 我认为您的全选是 tableViewCell?对吗?
-
@iDeepak 你需要'全选'单元格的最后一个刻度(没有正方形的刻度)吗??
-
@Shebin Koshy 我需要作为单元格选择,如果按钮将选择单元格将选择并且单元格将选择按钮也选择反之亦然.. 按钮不选择图像是带有黑色边框的白色方块并被选中我创建的这些图像在屏幕截图中显示为蓝色框
标签: ios uitableview uibutton