2013-07-05 2 views
0

Я работаю с динамическим UITable с ячейками прототипов, который создается в раскадровке в iOS 5. В этой таблице высота ячеек зависит от содержимого ячейки и оценивается программно в heightForRowAtIndexPath. Моя проблема заключается в том, что в отображаемой таблице строки разделителя ячеек помещаются в неправильные местоположения. Вот некоторые факты о моей программе:Разделители UITableView помещены неправильно

  • Cells содержание и основные моменты отображаются в предназначенных местах
  • В cellForRowAtIndexPath я использую dequeueReusableCellWithIdentifier для создания новых клеток
  • heightForRowAtIndexPath возвращает правильные значения для всех ячеек

Может ли кто-нибудь помочь мне разобраться в этой проблеме? Я нашел довольно старую нить, обсуждающую тот же вопрос год назад, однако не было предложено никаких объяснений/решений (см. UITableView separators drawn incorrectly through cell reuse?)

Большое спасибо за вашу помощь.

Спасибо,

Anis

+0

У меня динамический пример высоты ячейки [здесь] (https://github.com/wtmoose/TLIndexPathTools/blob/master/Examples/Dynamic%20Height/Dynamic%20Height/DynamicHeightTableViewController .m). Я попытался воспроизвести вашу проблему, но не смог. Не могли бы вы поделиться своим кодом контроллера и, возможно, с некоторыми подробностями о вашем раскадровке: а) используете ли вы автоматический макет, б) XML-отрывок для табличного представления? Я хотел бы выяснить, как воспроизвести это. –

+0

Привет, Тимоти! Надеюсь, ты получил мой ответ на свой пост. По-видимому, это слишком долго для комментария, поэтому я разместил его как ответ вместо этого. Не слишком уверен, как эти вещи работают в stackoverflow. Спасибо, Анис – Anis

+0

Нет, я не видел твое сообщение. К сожалению, я не вижу красных флагов в вашем коде. То, что я, вероятно, сделаю здесь, это разместить точку останова в 'willDisplayCellAtIndexPath', а затем сделать' po [cell recursiveDescription] 'для печати иерархии представлений ячейки. Изучите эту иерархию, чтобы увидеть, есть ли какие-либо ячейки, перекрывающиеся неожиданно. Это может дать ключ. –

ответ

0

Спасибо за ответ на мой пост. Это тоже странно для меня, так как раньше у меня была таблица динамической высоты ячейки. Вот запрошенная вами информация:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    UITableViewCell *currentCell = nil; 

    if([indexPath section] == 0 && [indexPath row]== 0) 
    { 
     currentCell = [issueDetailTable dequeueReusableCellWithIdentifier:@"DetailFieldCell"]; 

     NSString *summaryString; 

     /* Here I call a method to figure out the value for summaryString */ 

     /* Here I call a method to figure out the frame for summaryLabel */ 

     summaryLabel = (UILabel *)[currentCell viewWithTag:1]; 
     [summaryLabel setFrame:summaryRect]; 
     [summaryLabel setText:summaryString]; 
    } 
    return currentCell; 
} 

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{  
    CGFloat height; 

    if([indexPath section] == 0 && [indexPath row]== 0) 
    { 
     NSString *summaryString; 

     /* Here I call the same method to figure out the value for summaryString */ 

     /* Here I call the same method to figure out the frame for summaryLabel */ 

     /* height = height of the summary label */ 
    } 

    return height; 
} 

Что касается раскадровки, я использую ячейки прототипа для своего стола; Моя таблица автоматически изменяет размеры и захватывает подвид и очищает графический контекст; Мои ячейки очищают графический контекст.

И, я собирался опубликовать снимок экрана из моего стола, но, судя по всему, моих очков репутации Stackoverflow недостаточно! : |

Еще раз спасибо за помощь в этом.

С наилучшими пожеланиями, Anis

+0

В приведенном выше коде вы возвращаете неопределенное значение для 'height' в' heightForRowAtIndexPath' для всех строк, кроме (0, 0). Может быть, это имеет к этому какое-то отношение. –

+0

Я действительно пытался упростить свой код. В моем коде я возвращаю значения для всех строк. – Anis

Смежные вопросы