проблема с галочкой в ​​iphone - PullRequest
0 голосов
/ 31 августа 2011

Я новичок в 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;
}

Что мне для этого сделать?Я понятия не имею о галочках и их работе.Я просто хочу получить представление об этом.Кто-нибудь может мне помочь реализовать это?

Ответы [ 3 ]

1 голос
/ 31 августа 2011

В основном, ячейки имеют accessoryType для галочки, которую вы можете использовать: Невыбранные ячейки начинаются как не принадлежащий типу:

cell.accessoryType = UITableViewCellAccessoryNone;

Когда выбрана ячейка:

cell.accessoryType = UITableViewCellAccessoryCheckmark;

Кроме того, где-то вам нужно будет отслеживать, какие элементы в вашем источнике данных (т.е. Friendsarray) были выбраны, поскольку UITableView будет повторно использовать свои ячейки. Например, другой массив, заполненный NSNumbers - 0 для невыбранных и 1 для выбранных (другой пример - заменить Friendsarray на двумерный массив. Или, поскольку вы интегрируетесь с Facebook, в долгосрочной перспективе, вероятно, будет лучше создать класс «друга» и создайте массив из этого, где одно из полей «выбрано»).

Поскольку UITableView повторно использует ячейки при прокрутке таблицы, ваша ячейка cellForRowAtIndexPath должна будет проверить массив, чтобы определить, должна ли ячейка быть отмеченной или не отмеченной.

Код для выбора ячейки:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

Когда пользователь завершит работу, вы переберите свой источник данных (ваш массив или что-то еще) и получите выбранных друзей.

Надеюсь, это руководство, которое вы ищете.

0 голосов
/ 06 сентября 2011

То, что вы хотите реализовать, - это выбор нескольких строк.Посмотрите на эти ссылки

Возможно ли настроить UITableView для разрешения множественного выбора?

Выбрать несколько строк в UITableview

0 голосов
/ 31 августа 2011

Это может помочь вам:

в вашем методе 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];
  }
}

// использовать два изображения: одно маленькое квадратное, а другое с помеченным галочкой изображением

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...