Изменение содержимого и положения табличного представления нажатием кнопки в xcode - PullRequest
0 голосов
/ 10 июня 2011

В моем приложении я настраиваю табличное представление, используя этот метод: -

// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    static NSString *CellIdentifier = @"Cell";      

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    // if (cell == nil) {
    // cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
    // }
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    }
    if(indexPath.row == 0)
    {                       
        button1=[[UIButton alloc] initWithFrame:CGRectMake(15,5,100,87)];
        [button1 setImage:[UIImage imageNamed:@"BUTTON.png"] forState:UIControlStateNormal];
        [button1 addTarget:self action:@selector(ClickTo:) forControlEvents:UIControlEventTouchUpInside];
        [cell.contentView addSubview:self.button1];

        button2=[[UIButton alloc] initWithFrame:CGRectMake(135,5,100,87)];
        [button2 setImage:[UIImage imageNamed:@"TURN OFF.png"] forState:UIControlStateNormal];
        [button2 addTarget:self action:@selector(ClickTo:) forControlEvents:UIControlEventTouchUpInside];
        [cell.contentView addSubview:button2];
    }
    else if(indexPath.row == 1)
    {
        button3=[[UIButton alloc] initWithFrame:CGRectMake(15,5,100,87)];
        [button3 setImage:[UIImage imageNamed:@"JUMP.png"] forState:UIControlStateNormal];
        [button3 addTarget:self action:@selector(ClickTo:) forControlEvents:UIControlEventTouchUpInside];
        [cell.contentView addSubview:button3];

        button4=[[UIButton alloc] initWithFrame:CGRectMake(135,5,100,87)];
        [button4 setImage:[UIImage imageNamed:@"CLOSE.png"] forState:UIControlStateNormal];
        [button4 addTarget:self action:@selector(ClickTo:) forControlEvents:UIControlEventTouchUpInside];
        [cell.contentView addSubview:button4];
    }
    else
    {
        // Do something here

    }
    return cell;
}

Я добавляю 2 кнопки в один ряд и добавляю изображения к каждой кнопке. У меня есть кнопка. Теперь я хочу, чтобы при нажатии на кнопку я хотел изменить изображения, присутствующие в кнопке, а также представление таблицы. Я должен изменить свою позицию в представлении таблицы, а также добавить новый кадр в представление таблицы, а также добавить новые изображения для кнопок и затем вызвать данные перезагрузки для представления таблицы. Я пробовал это, но ничего не случилось. В чем может быть проблема? Пожалуйста, помогите. Любая помощь будет оценена.

Спасибо

Christy

1 Ответ

0 голосов
/ 10 июня 2011

В didselectrowatindexpath возьмите selectedIndex. Затем с помощью метода reloadData вы можете перезагрузить его. А в cellforRowatIndexPath вам нужно изменить кнопку Image.

static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
    }
    //change background image here

    [button setBackgroundImage:[UIImage imageNamed:@"ima.jpg"]];
    return cell;

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    selected=indexPath.row;//selected is an integer
        [tableview reloadData];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...