2015-04-14 3 views
0

Я пытаюсь создать пользовательскую ячейку highlighted анимации ... но она не работает. Любые мысли, как я могу оживить .alpa?Пользовательские UITableView Cell Animation

ViewController.m

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    static NSString *cellID = @"myID"; 
    TableViewCustomCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID]; 

    cell.selectedImg.frame = cell.contentView.frame; 
    cell.selectedImg.image = [ViewController imageFromColor:[UIColor colorWithRed:0.55 green:0.95 blue:0.68 alpha:0.0]]; 
    cell.selectedImg.hidden = NO; 

    return cell; 
} 

TableViewCustomCell.m

- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated 
{ 
    if (highlighted) { 
     [UIView animateWithDuration:0.2 animations:^(void) { 
      self.selectedImg.alpha = 0.5;}]; 
    } 
    else { 
     [UIView animateWithDuration:0.2 animations:^(void) { 
      self.selectedImg.alpha = 0.0;}]; 
    } 
} 

P.S. У меня будет много UITableViews, и все они будут иметь один и тот же стиль ячейки, поэтому должен ли я разместить код cell.selectedImg где-нибудь в TableViewCustomCell.m? Если да, то где же место?

+0

Для вас ps вопрос, использовать супер класс. Как «BaseTableViewCell» – rckoenes

+0

Я уже пользуюсь пользовательским классом ячеек «TableViewCustomCell». Но где в TableViewCustomCell - правильное место для настройки стиля ячейки? – Edgar

+0

Это зависит от того, загружаете ли вы из NIB, тогда это '- (void) awakeFromNib' it вы делаете все в коде, вы должны сделать это в init. – rckoenes

ответ

1

Попробуйте заменить код в

  • (аннулируются) setHighlighted: (BOOL) Подчеркнул анимированный: (BOOL) анимированные

в TableViewCell.m следующим код:

[UIView animateWithDuration:0.2 
          delay:0 
         options:UIViewAnimationOptionCurveLinear 
        animations:^{ 
         if (highlighted) { 
          self.selectedImg.alpha = 0.5; 
         } 
         else { 
          self.selectedImg.alpha = 0; 
         } 
        } 
        completion:^(BOOL finished){ 
         if (highlighted) { 
          self.selectedImg.alpha = 0; 
         } 
         else { 
          self.selectedImg.alpha = 0.5; 
         } 
}]; 
+0

Заменен код, но по-прежнему не работает – Edgar

+0

В вашем методе просто напишите строку в первую очередь [super setHighlighted: выделенное анимированное: анимированное] –

+0

все еще не работает ... – Edgar