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

#iphone #objective-c #xcode

#iPhone #objective-c #xcode

Вопрос:

В моем приложении я должен реализовать функциональность флажка в ячейке просмотра таблицы.При нажатии на этот флажок в той же ячейке будет создана другая метка.1-й как реализовать функциональность флажка?я создал пользовательскую ячейку. вот мой код, который я пробовал, но он не работает.

    -(UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath {

      UIButton *btnUncheck=[[UIButton alloc] initWithFrame:CGRectMake(260, 35, 20, 20)];

   btnUncheck=[UIButton buttonWithType:UIButtonTypeCustom];
     btnUncheck.tag=indexPath.row;
// [btnUncheck setImage:[UIImage imageNamed:@"NO.png"] forState:UIControlStateNormal];
[btnUncheck addTarget:self action:@selector(checkBoxClicked:)   forControlEvents:UIControlEventTouchUpInside];

[view addSubview:btnUncheck]



    -(void)checkBoxClicked:(id)sender{


     if(favoriteChecked==NO)
 {


    [sender setImage:[UIImage imageNamed:@"YES.png"] forState:UIControlStateNormal];
     favoriteChecked=YES;
        }
else
{


    [sender setImage:[UIImage imageNamed:@"NO.png"] forState:UIControlStateNormal];
    favoriteChecked=NO;
        }





}
  

Комментарии:

1. Пожалуйста, поместите код в правильной последовательности, поскольку я не могу понять, что вы указали в tableView:cellForRowAtIndexPath: методе и где он заканчивается. Пожалуйста, опубликуйте полный код. Это не помогает.

Ответ №1:

Преобразуйте вашего отправителя из типа идентификатора в тип кнопки с помощью UIButton *btn = (UIButton *)sender; , а затем измените изображение на btn .

Также измените [view addSubview:btnUncheck] на [cell.contentView addSubview:btnUncheck]; , И для этого вам потребуется создать tableViewCell

Надеюсь, это поможет.

Ответ №2:

 try this
if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
        UIButton *button = [UIButton buttonWithType:UIButtonTypeInfoLight];
        button.frame = CGRectMake(3,8,30, 30);
[button setImage:[UIImage imageNamed:@"chack box1_selected_callback.png"] forState:0]
[button addTarget:self action:@selector(myAction:) forControlEvents:UIControlEventTouchUpInside];
[cell.contentView addSubview:button];
    }
  

Ответ №3:

в блоке

 if(cell==nil)
{
     //add the code here
}
  

Надеюсь, это поможет