2012-05-05 3 views
0

Я разместил UISwitch, UILabel и пару кнопок на UITableViewCell, и теперь теперь мне нужно, чтобы они правильно реагировали (показывать/скрывать), когда UISwitch изменяет статус.iOS: как указывать на конкретный элемент управления на UITableView

Моя проблема заключается в том, что вышеупомянутые UILabel и кнопки они скрываются и происходят на случайных ячейках, а не в этом конкретном месте, где размещается UISwitch.

Я зашел так далеко:

-(void)hideQualityBtn:(id)sender 
{ 
if(sender.tag==9001) 
{ 
    UITableViewCell *cell=((UITableViewCell*)[sender superview]); 
    // cell.control.....hidden=YES; 
} 
} 

Помощь очень ценится, спасибо заранее.

EDIT:

в cellForRowAtIndexPath

self.switchView = [[UISwitch alloc] initWithFrame:CGRectMake(7, 8, 79, 27)]; 
[switchView addTarget:self action:@selector(setItem:) forControlEvents:UIControlEventValueChanged]; 
[switchView setTag:9001]; 
[cell addSubview:switchView]; 
[cell setIndentationWidth:45]; 
[cell setIndentationLevel:1]; 

SetItem мет:

-(void)setItem:(UISwitch*)sender 
{ 
int n; 
UITableViewCell *cell; 
// so i'm getting item ID 
if(sender.tag==9001) 
{ 
    cell=((UITableViewCell*)[sender superview]); 
    n=([self.tableView indexPathForCell:cell].row); 
} 
item=[self.arr objectAtIndex:n]; 

NSDate *today=[NSDate date]; 
NSDateFormatter *formatter =[[NSDateFormatter alloc] init]; 
[formatter setDateStyle:NSDateFormatterMediumStyle]; 
NSString *now =[formatter stringFromDate:today]; 

if(sender.on) 
{ 
    DBAccess *access=[[DBAccess alloc]init]; 
    [access setItemON:item.itemID date:now]; 
    qualityBtn.hidden=NO; 
    [qualityBtn setTitleColor:[UIColor blackColor] forState:normal]; 
    [qualityBtn setTitle:@"UNDEF" forState:normal]; 
} 
else 
{ 
    DBAccess *access=[[DBAccess alloc]init]; 
    [access setItemOFF:item.itemID]; 
} 
} 

Мой конкретный вопрос, как указать для управления, которые расположены в определенной ячейке?

ответ

0

Вам необходимо настроить UITableViewCell в своей реализации tableview: cellForRowAtIndexPath: и сохранить ссылку (возможно, в свойстве) на ваш UISwitch, чтобы вы могли получить к ней доступ, когда происходят интересные события.

+0

всего лишь момент. Я редактирую. – NCFUSN

Смежные вопросы