2013-12-01 6 views
2

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

В контроллере табличного я делаю три вещи:

  1. добавляющие простой пользовательскую анимацию в ячейку в Tableview: willDisplayCell: forRowAtIndexPath:
  2. добавив закругленный угловой эффект на клетки в Tableview : cellForRowAtIndexPath:
  3. добавляя эффект тени к клетке в Tableview: cellForRowAtIndexPath:

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

И теперь, когда я прокручиваю назад, начальные 3 ячейки также имеют теневой эффект.

Несколько часов отладки этого оставили меня еще более невежественным. Какие-либо предложения?

ответ

1

Я решил проблему. [ячейка layoutSubviews] делает все, что мне нужно:

if (cell == nil) { 
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier]; 
    cell.imageView.layer.masksToBounds = NO; 
    cell.imageView.layer.cornerRadius = 5.0f; 
    [cell layoutSubviews]; 
} 

cell.imageView.layer.shadowOpacity = 0.5f; 
cell.imageView.layer.shadowPath = [UIBezierPath bezierPathWithRoundedRect:cell.imageView.bounds cornerRadius:5.0f].CGPath; 
cell.imageView.layer.shadowOffset = CGSizeMake(2.5f, 2.5f); 
cell.imageView.layer.shadowRadius = 2.5f; 
Смежные вопросы