我有一个导入通讯录联系人并显示图像、联系人姓名和复选框的表格,我用图像、标签和一个用作复选标记的按钮自定义了我的单元格。我成功地能够显示所有联系人,并且复选标记也适用于单个单元格,但我无法实现选择所有功能,该功能会将表格中的所有按钮置于选定状态,然后再次单击它将取消选择它。这是我到目前为止所做的。
//这是我的自定义单元格的类
#import "InviteFriendsCell.h"
@implementation InviteFriendsCell
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
// Initialization code
}
return self;
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
[super setSelected:selected animated:animated];
}
//This is my checkmark button
-(IBAction)onAddTouched:(id)sender
{
UIButton *addButton = (UIButton *)sender;
[addButton setSelected:![addButton isSelected]];
}
@end
//这是我在FriendListViewController中的tableview显示代码
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"friendsCell";
InviteFriendsCell *cell= [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if(cell==nil)
{
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"InviteFriendsCell" owner:self options:nil];
cell = [nib objectAtIndex:0];
}
// Configure the cell...
NSUInteger row = 0;
NSUInteger sect = indexPath.section;
for (NSUInteger i = 0; i < sect; ++ i)
row += [self tableView:tableView numberOfRowsInSection:i];
row += indexPath.row;
cell.thumbImage.layer.cornerRadius=25;
cell.thumbImage.clipsToBounds=YES;
cell.thumbImage.image=nil;
self.persons = CFArrayGetValueAtIndex(self.contactAdd, row);
NSString *tweet=[[NSString stringWithFormat:@"%@",(__bridge_transfer NSString *)ABRecordCopyCompositeName(self.persons)] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
[cell.friendName setText:tweet];
if (ABPersonHasImageData(persons))
{
NSData *imgData = (__bridge NSData *) ABPersonCopyImageDataWithFormat(persons, kABPersonImageFormatThumbnail);
cell.thumbImage.image = [UIImage imageWithData:imgData];
}
else
{
cell.thumbImage.image = [UIImage imageNamed:@"name_icon.png"];
}
return cell;
}
//这是我的全选按钮,它应该对表格视图中的所有按钮进行复选标记
- (IBAction)selectAll:(UIButton *)sender {
//This is where I need to implement the code
}
这里的堆栈溢出有一个类似的问题需要为 UITableView 创建一个全选按钮并将选择添加到 iOS 中的数组
但是这里的复选标记按钮是在 tableview 方法中创建的,我的情况不同,我无法实现该代码。有一个更好的方法吗?我正在使用故事板和 xcode 5,应该适用于 ios 5 或更高版本。