2016-02-04 3 views
0

У меня есть заполненный массив, который можно отобразить в виде таблицы, но я хочу скрыть 3 текста ячеек (из 7 ячеек). Я знаю, что ниже код неправильно, но в данном случае я только хочу, чтобы показать текст в ячейке 0.Как показывать текст в определенной ячейке?

cell.animal.text[0] = animalarray[0] cell.animal.hidden = true

+0

Вы хотите, чтобы ячейка отображалась, если текст пуст? Также обновите свои коды. – jo3birdtalk

+0

Да, я хочу, чтобы ячейка существовала, у меня есть определенное количество ячеек (7) – stackerleet

+0

Ячейка для строки в пути указателя - если ячейка является одной из ячеек, вы не хотите текст, тогда не добавляйте текст. – DogCoffee

ответ

1

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

  1. У вас должен быть массив нежелательного текста, который вы не хотите показывать.

  2. Внутри вашего cellForRowAtIndexPath, вам нужно иметь цикл, чтобы пройти через animalarray и внутри для цикла, если есть-то еще о проверить, является ли если (unwantedtext == animalarray), затем cell!.textLabel.text = " "

Необходимо показать мне коды для меня, чтобы помочь вам.

1

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

Как правило, вы сообщаете TableView, что печатать для каждой ячейки в методе ниже делегата в вашем ViewController.

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

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"]; 
    cell.textLable.text = animalArray[indexPath.row]; 

    return cell; 
} 

Здесь вы определяете, какой индекс в животном массиве вы делаете или не хотите печатать. Если ваше требование является статичным, самым простым является жесткое кодирование блокировки.

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

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"]; 

    if(!(indexPath.row == self.indexIDontWantToPrint)) { 
     cell.textLable.text = animalArray[indexPath.row]; 
    } 

    return cell; 
} 

Если индексы, которые вы не хотите печатать, являются динамическими и представлены вам, например, массивом.
Вам нужно заменить if(!(indexPath.row == self.indexIDontWantToPrint)) на проверку, если indexPath.row находится внутри массива индексов, которые вы должны игнорировать.

NSArray имеет удобный метод containsObject, который вы можете использовать, чтобы проверить, содержит ли массив текущий индекс, который tableView хочет распечатать. Будьте осторожны с разницей типов indexPath.row является NSInteger, в то время как NSArray необходимо переносить NSNumber для простых числовых чисел.

0

Добавление более эффективная, чем логика jo3birdtalk

1) Вместо того, чтобы дополнительный массив, вы можете создающий объект, содержащий строку & Bool.Add этих объектов в animalarray

2) Получить объект из массив на indexpath & проверка
если (animal.isShow == YES), если да показать текст еще скрыть метку или набор пустую строку, что вы необходимый

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

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"]; 
Animal * animal = animalArray[indexPath.row]; 
    if(animal.isShow == YES) 
    { 
     show the text 
    }else 
    { 
     hide label Or set blank string whatever you requered 
    } 

    return cell; 
} 
Смежные вопросы