#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 для достижения того же результата.
С наилучшими пожеланиями.