Как Вы изменяете textLabel, когда UITableViewCell выбран?

В некоторой степени эти две схемы эквивалентны:

  • распределенный VCS А может тривиально эмулировать централизованный, если Вы просто всегда продвигаете свои изменения в некотором обозначенном восходящем репозитории после каждой локальной фиксации.
  • централизованный VCS А обычно не будет в состоянии эмулировать распределенный вполне как естественно, но можно получить что-то очень похожее при использовании чего-то как стеганое одеяло сверху его. Стеганое одеяло, если Вы не знакомы с ним, является инструментом для управления большими наборами патчей сверху некоторого восходящего проекта. Идея здесь состоит в том, что команда фиксации DVCS реализована путем создания нового патча, и команда нажатия реализована путем передачи каждого выдающегося патча к централизованному VCS и затем отбрасывания файлов исправления. Это звучит немного неловким, но на практике это на самом деле работает скорее приятно.

Однако существует несколько вещей, которые DVCSes традиционно делают очень хорошо и из которых наиболее централизованные VCSes делают что-то вроде хеша. Самый важный из них, вероятно, переходит: DVCS сделает очень легким перейти репозиторий или объединить ответвления, которые больше не необходимы и будут отслеживать историю, в то время как Вы делаете так. Нет никакой конкретной причины, почему централизованная схема испытала бы затруднения из-за этого, но исторически никто, кажется еще, вполне не разобрался в нем. Является ли это на самом деле проблемой для Вас, зависит от того, как Вы собираетесь организовать разработку, но для многих людей это - значительное соображение.

другое устанавливаемое преимущество DVCSes состоит в том, что они работают офлайн. У меня действительно никогда не было большого использования для этого; я главным образом делаю разработку любой в офисе (так репозиторий в локальной сети) или дома (таким образом, существует ADSL). Если Вы делаете большую разработку на ноутбуках при перемещении тогда, это могло бы быть большим количеством соображения для Вас.

нет на самом деле очень многих глюков, которые характерны для DVCSes. Существует немного большая тенденция для людей успокоиться, потому что можно фиксировать, не продвигая, и легко закончить тем, что полировало вещи конфиденциально, но кроме этого у нас не было очень многих проблем. Это может быть то, потому что у нас есть значительное количество разработчиков ПО с открытым исходным кодом, которые обычно знакомы с торгующей патчем моделью разработки, но входящие разработчики с закрытым исходным кодом также, кажется, берут вещи обоснованно быстро.

8
задан leppie 8 February 2011 в 06:27
поделиться

3 ответа

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

[cell setNeedsLayout]

после внесения указанных выше изменений в метки.

Кроме того, есть ли причина, по которой вы делаете ссылку на делегат приложения в методе?

2
ответ дан 5 December 2019 в 12:59
поделиться

Вы пытались обновить только выбранную ячейку вместо перезагрузки всей таблицы?

[ячейка setNeedsDisplay];

вместо

[tableView reloadData];

Это будет иметь лучшую производительность, а я нет, но я полагаю, что выбор теряется, если вы обновляете всю таблицу (это может быть причиной того, что вы не видите никаких изменений в конце) ....

-1
ответ дан 5 December 2019 в 12:59
поделиться

Я согласен, при перезагрузке табличного представления фактически выгружаются и перезагружаются / отображаются все ячейки с использованием tableView: cellForRowAtIndexPath: и используется исходный данные, а не обновленные @ "xxxxx" и @ "yyyyy" в вашем методе tableView: didSelectRowAtIndexPath: .

В небольшом тестовом проекте мне удалось изменить метки при выборе:

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

    UITableViewCell * cell = [tableView cellForRowAtIndexPath:indexPath];
    cell.textLabel.text = @"it was tapped";
}
10
ответ дан 5 December 2019 в 12:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: