как определить uitableviewcells - PullRequest
       2

как определить uitableviewcells

1 голос
/ 25 августа 2011

Я создаю uitableview, который имеет два раздела, раздел == 0 имеет 5 строк, а раздел == 1 имеет 1 строку.

Я также объявил несколько функций в классе Objective-C, который яхотел бы подключиться к каждому из пяти рядов.Однако я не уверен, как это реализовать.

Я думаю, что-то вроде

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    }

    // Configure the cell...
    cell.selectionStyle = UITableViewCellSelectionStyleNone;

//---------- In here put a bunch of IF statments, declaring each cell? and linking it to
//---------- the function I have declared in the objective-c class

    return cell;
}

Ответы [ 3 ]

1 голос
/ 25 августа 2011

Обычно ячейки настроены на tableView:cellForRowAtIndexPath:. Определение функции, вызываемой при касании ячейки, обычно выполняется в tableView:didSelectRowAtIndexPath.

При настройке ячейки в tableView:cellForRowAtIndexPath: вы можете указать секцию и строку, используя indexPath, например:

if(indexPath.section == 0){

    if(indexPath.row == 0){

        // setup this cell...

    }else if(indexPath.row == 1){

    }// ...

}else if(indexPath.section == 1){

    if(indexPath.row == 0){

    }else if(indexPath.row == 1){

    }// ...
}

Сделайте нечто подобное в tableView:didSelectRowAtIndexPath при определении, какая функция вызывается, когда пользователь касается каждой ячейки. Соответствующую документацию от Apple можно найти здесь .

0 голосов
/ 25 августа 2011

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

С другой стороны, если вы планируете добавлять больше меток, изображений или еще чего-нибудь в ячейку, то для каждой отдельной строки вам придется настроить способ.следовательно, создаются ячейки, для чего необходимо добавить новые CellIdentifiers, чтобы избежать смешивания ячеек, и изменить код внутри if (cell == nil) {} для настройки каждого дизайна ячейки.

0 голосов
/ 25 августа 2011

Обычно эта функция настраивает ячейку путем извлечения данных из массива, базы данных или некоторой другой индексированной коллекции:

if ([indexPath section] == 0) {
    [[cell textLabel] setText:[sectionOneValues objectAtIndex:[indexPath row]]];
}
else if ([indexPath section] == 0) {
    [[cell textLabel] setText:[sectionTwoValues objectAtIndex:[indexPath row]]];
}

В вашем случае звучит так, как будто вы хотите «подключиться» к некоторымдругие функции для 5 строк в разделе 0, поэтому вы будете делать что-то иное, чем использование массива sectionOnValues ​​в предложении if.Немного сложно быть более конкретным, не зная, что вы хотите делать с этими функциями, которые подключаются.

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