2013-11-10 2 views
2

Мой (довольно сложная) ситуация выглядит следующим образом:Рисование + UITableViewCell + UIScrollView подкласс?

  • TestView подкласс UIScrollView, который реализует -drawRect:, но в какой-то момент внутри -drawRect: он будет вызывать метод, скажем -drawAnotherPartWithRect:context:. Этот метод реализуется подклассами TestView, чтобы индивидуально выделить определенную часть контекста.
  • Есть два подкласса TestView, которые реализуют -drawAnotherPartWithRect:context:, которые в настоящее время в же внутри него: Subclass1 и Subclass2.
  • На данный момент Размер кадра - это единственное отличие между ними во время инициализации.

Экземпляр Subclass1 используется в качестве заголовка секции представления таблицы, и она прекрасно работает, но если Subclass2 используется как подвид зрения содержимого ячейки, он будет отображаться, пока не прокручивать. Его инициализация выглядит следующим образом:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"PortoAppSubjectViewTableViewCell"]; 
    if (cell == nil) { 
     cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"PortoAppSubjectViewTableViewCell"] autorelease]; 

     Subclass2 *contentView = [[[Subclass2 alloc] initWithFrame:CGRectMake(0.f, 0.f, [tableView bounds].size.width, 32.f)] autorelease]; 
     [contentView setContentSize:CGSizeMake(tableView.bounds.size.width * 3, 32.f)]; 
     [contentView setTag:55]; 
     [[cell contentView] addSubview:contentView]; 
    } 

    [(SubjectTableViewCellContentView *)[[cell contentView] viewWithTag:55] setContainer:[[[[$container subGradeContainers] objectAtIndex:[indexPath section]] subGradeContainers] objectAtIndex:[indexPath row]]]; 

    return cell; 
} 

Интересная вещь, индикатор горизонтальной прокрутки показывает вверх и показывает мне, что это точно прокрутки, но текст (обращается с CoreText) не двигаться влево/вправо вместе с ним , Это работает из коробки с Subclass1. Кроме того, если Subclass2 используется вместо этого как класс представления заголовка раздела, он будет работать точно.

Итак, что происходит с горизонтальными прокрутками и ячейками таблицы? Я проверил другие связанные вопросы по SO, но не смог найти решение.

ответ

0

Я решил проблему, вместо того, чтобы напрямую рисовать подкласс UIScrollView, используя подкласс UIView, добавленный в качестве подзадачи UIScrollView.

Мне все еще нравятся последующие действия, поэтому вопрос остается без ответа - почему он работал с заголовком, а не с ячейкой таблицы?

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