Я пытаюсь создать UITableView
с пользовательским UIButton
в каждой ячейке таблицы. Я реализовал, как это ..UITableViewCell с пользовательским UIButton
@implementation CouponDetailsCustomTableViewCell
...............
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
// Initialization code
[self setBackgroundColor:[UIColor whiteColor]];
CGRect frame = self.contentView.frame;
self.radioButton = [UIButton buttonWithType:UIButtonTypeCustom];
[self.radioButton setImage:[UIImage imageNamed:@"radio_blank.png"] forState:UIControlStateNormal];
[self.radioButton setImage:[UIImage imageNamed:@"radio_selected"] forState:UIControlStateSelected];
[self.radioButton setFrame:CGRectMake(16, 10, 29, 29)];
[self.radioButton addTarget:nil action:@selector(radioButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
[self addSubview:radioButton];
}
@end
и UITableView Делегат, как ......
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *COUPON_CELL_ID = @"CouponCell" ;
CouponDetailsCustomTableViewCell * couponCell = (CouponDetailsCustomTableViewCell *) [tableView dequeueReusableCellWithIdentifier:COUPON_CELL_ID];
if (couponCell == nil) {
couponCell = [[[CouponDetailsCustomTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:COUPON_CELL_ID] autorelease];
couponCell.selectionStyle = UITableViewCellSelectionStyleNone;
}
[couponCell.radioButton setSelected:NO];
return couponCell;
}
и метод radioButtonPressed является
-(void)radioButtonPressed:(id) sender
{
[sender setSelected:YES];
}
Теперь я запустить программу и пользовательские UIButton
отображается в каждой строке таблицы. Если я нажимаю на кнопку, она выбирается (показывает radio_selected.png
).
Проблема возникает, когда я просматриваю таблицу (я показываю только 4 строки таблицы в окне). Когда я снова прокручиваю ... что я вижу, нажатая кнопка показывает radio_blank.png
.
Я новичок в разработке iPhone. Я не знаю, почему это происходит. Самое большее, что я могу догадаться, это свойство кнопки меняется. setSelected:NO
.
Кто-то, пожалуйста, дайте мне рекомендации по устранению этой проблемы.
спасибо.
[self.radioButton setImage: [UIImage imageNamed: @ "radio_blank.png"] Форстат: UIControlStateNormal]; [self.radioButton setImage: [UIImage imageNamed: @ "radio_selected.png"] forState: UIControlStateSelected]; –
Я не вижу никаких проблем: - # –
в нажатой кнопке, я написал код выше. не здесь. кнопка находится в выбранном состоянии, а для выбранного сателлита ваше изображение - черное – Saad