Анимация родственных представлений

#iphone #objective-c #ios #ipad

#iPhone #objective-c #iOS #iPad

Вопрос:

У меня есть сетка пользовательских представлений, к каждому из которых прикреплено событие касания. При прикосновении к UIView я хотел бы удалить все его родственные представления.

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

РЕДАКТИРОВАТЬ: понял это:

 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

    for (UIView *subview in [self.superview subviews]) {
        if ( subview != self ) {
            subview.layer.opacity = 0.5;
        }      
    }

    [super bringSubviewToFront:self];

}
  

Ответ №1:

Вы также можете сделать это на уровне UIView. Просто внесите изменения в альфа-версию представления внутри блока анимации UIView. Вот так:

 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
  [UIView beginAnimations:nil context:NULL];  
  [UIView setAnimationDuration:0.5];
  for (UIView *subview in [self.superview subviews]) {
    if ( subview != self ) {
      [subview setAlpha:0.5];
    }      
  }
  [UIView commitAnimations];    
  [super bringSubviewToFront:self];

}
  

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

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