我是iPhone新手。我正在创建一个应用程序。为此,我想向朋友发送我的应用程序邀请到Facebook个人资料。我的Facebook好友列在TableView中。
我想一次选择40个恶魔并向朋友的墙发送邀请。
在我的应用程序中,我写信给我的朋友们展示:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Displayfriendscell";
Displayfriendscell *cell = (Displayfriendscell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[Displayfriendscell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
}
// Configure the cell...
NSString *name=[Friendsarray objectAtIndex:indexPath.row];
//NSLog(@"name is%@",friendid);
cell.nameLabel.text = name;
return cell;
}
我该怎么做?我不知道复选标记及其工作原理。我只是想知道它。任何人都可以帮我实现吗?
答案 0 :(得分:1)
基本上,单元格有一个您可以使用的复选标记的accessoryType: 未选择的单元格从没有附件类型开始:
cell.accessoryType = UITableViewCellAccessoryNone;
选择单元格时:
cell.accessoryType = UITableViewCellAccessoryCheckmark;
此外,在某处你需要跟踪数据源中哪些项目(即Helloarray)被选中,因为UITableView将重用它的单元格。例如,另一个数组填充NSNumbers - 0表示未选中,1表示选择(另一个例子是将Friendsarray更改为2维数组。或者,由于您与Facebook集成,从长远来看创建类可能是最好的'朋友'并制作一个数组,其中一个字段被“选中”。)
由于UITableView在滚动表格时会重复使用单元格,因此您的cellForRowAtIndexPath需要检查您的数组,以查看是否应将单元格设置为选中或取消选中。
选择单元格的代码包括:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
当用户完成后,您将遍历数据源(您的数组或其他任何内容)并获取所选的朋友。
希望这是你正在寻找的指导。
答案 1 :(得分:0)
这可能会对您有所帮助:
你的cellForRowAtIndexPath方法中的是这样的:
NSString *name=[Friendsarray objectAtIndex:indexPath.row];
UILabel *lblName = [[UILabel alloc]initWithFrame:CGRectMake(10, 8, 250, 20)];
lblName.text = name;
[cell addSubview:lblName];
UIButton *btnCheck = [UIButton buttonWithType:UIButtonTypeCustom];
btnCheck.frame = CGRectMake(290, 8, 16, 16);
[btnCheck setImage:[UIImage imageNamed:@"checkbox.png"] forState:UIControlStateNormal];
[btnCheck setTitle:@"0" forState:UIControlStateNormal];
[btnCheck addTarget:self action:@selector(btnClicked:)forControlEvents:UIControlEventTouchUpInside];
btnCheck.tag = indexPath.row+1;
[cell addSubview:btnCheck];
//在选择器方法(btnClicked)中:
-(void)btnClicked:(id)sender
{
UIButton *btnTemp = (UIButton*)sender;
UIButton *btnSelected = (UIButton*) [self.view viewWithTag:btnTemp.tag];
NSString *strTitle = btnSelected.titleLabel.text;
if([strTitle isEqualToString:@"0"])
{
[btnSelected setTitle:@"1" forState:UIControlStateNormal];
[btnSelected setImage:[UIImage imageNamed:@"checkbox-checked.png"] forState:UIControlStateNormal];
}
else
{
[btnSelected setTitle:@"0" forState:UIControlStateNormal];
[btnSelected setImage:[UIImage imageNamed:@"checkbox.png"] forState:UIControlStateNormal];
}
}
//使用两个图像,一个是小sqaure,另一个是带刻度标记的图像
答案 2 :(得分:0)