Использование пользовательского вспомогательного представления UITableViewCell для отображения двух элементов - PullRequest
0 голосов
/ 04 августа 2010

Я искал это некоторое время, но не нашел ответа (вините в плохих навыках поиска в Google). У меня есть пользовательский класс UITableViewCell, который в настоящее время состоит из пользовательского UISwitch и UILabel. Я хочу добавить кнопку, которая видна (и активна), только когда переключатель установлен в положение «Да». Прямо сейчас я добавляю переключатель к accessoryView и оставляю его. Однако, насколько я могу судить, вспомогательный вид на самом деле не имеет подпредставлений, поэтому вот мой вопрос:

Должен ли я просто создать UIView, который имеет кнопку и переключатель, изменить его размер, чтобы он соответствовал вспомогательному виду ячейки (или будет ли он автоматически изменять размер самого себя?), И вставить его в качестве вспомогательного представления ячейки? И обычно ли это так?

Или есть решение, которое мне не хватает?

Спасибо.

1 Ответ

1 голос
/ 27 ноября 2010

Вот пример:

UIButton* btdel = [[UIButton alloc] init]; 
btdel.tag = indexPath.row; 
//[btdel setTitle:@"Delete Event" forState:UIControlStateNormal];
[btdel setBackgroundImage:[UIImage imageNamed:@"ButtonRemove.png"] forState:UIControlStateNormal];
[btdel addTarget:self action:@selector(deleteEvent:) forControlEvents:UIControlEventTouchUpInside];
// bt.titleLabel.frame = CGRectMake(0, 0, 95,24); 
btdel.frame = CGRectMake(110, 0, 30,30); 
[headerView addSubview:btdel];
[btdel release];

UIButton* bt = [[UIButton alloc] init]; 
bt.tag = indexPath.row;  
[bt setTitle:@"Select a Dress" forState:UIControlStateNormal];
[bt setBackgroundImage:[UIImage imageNamed:@"findDress.png"] forState:UIControlStateNormal];
[bt addTarget:self action:@selector(showDresses:) forControlEvents:UIControlEventTouchUpInside];

bt.font=[UIFont systemFontOfSize:(CGFloat ) 13];

// bt.titleLabel.frame = CGRectMake(0, 0, 95,24); 
bt.frame = CGRectMake(0, 3, 95,24);

[headerView addSubview:bt];
cell.accessoryView = headerView;
...