Ячейка табличного представления как кнопка - PullRequest
4 голосов
/ 02 марта 2012

Я пытаюсь установить ячейку табличного представления, которая была сгруппирована, как кнопку, однако я не могу найти, где это сделать, в конструкторе интерфейсов в XCode 4.2 или программно.

Я пытался связать ячейку табличного представления с IBAction, однако он позволяет только создавать или связывать с IBOutlet.

В качестве временного исправления я встроил прямоугольную кнопку в ячейку, но это не выделяет синий при нажатии.

Я видел эту работу в нескольких приложениях, например кнопки «Очистить историю» и «Очистить файлы cookie и данные» в приложении Safari:

enter image description here

Ответы [ 2 ]

10 голосов
/ 02 марта 2012

Представьте, что ваш IBAction такой:

-(IBAction)buttonPressed{
//Do my stuff
}

Затем вы должны сделать это в своем делегате:

 -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

    //check if your cell is pressed
    BOOL myCellIsPressed = ...

     if(myCellIsPressed)
        [self buttonPressed];
}

Чтобы проверить, была ли нажата ваша ячейка, у вас есть несколько способов, например, если вы знаете строку вашей кнопки в таблице:

int myCellRow = 5;
if (myCellRow == IndexPath.row) //YES!

Или вы можете поместить тег в свою ячейку, а затем проверить, является ли он:

#define myTag 5

При создании ячейки:

UITableViewCell *myCell = ...
myCell.tag = myTag

И в didSelectRowAtIndexPath:

UITableViewCell *selectedCell = [tableView cellForRowAtIndexPath:indexPath];
if (selectedCell.tag == myTag) //YES!
1 голос
/ 02 марта 2012

это не кнопки .. Функция очистки куки и других вещей обрабатывается в методе делегата табличного представления

 tableview : didselectRow 

Там вы можете найти, какой раздел и какую строку выбрать, и выполнять функции начто.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...