1

我试图淡出整个视图,但只有一个特定subview的,这将强调subview更清晰的外观。假设 self.view 有 5textfields和 2 UIViewassubviews并且我想UIView强调 1。有没有办法在不触及强调的情况下用 5textfields和 1淡出/在整个 self.view 中?UIViewUIView

我已经尝试过使用方法

+ (void)animateWithDuration:(NSTimeInterval)duration animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion

如:

[UIView animateWithDuration:0.75
                 animations:^{
                     self.view.alpha = 0.5f;

                 }
                 completion:^(BOOL finished){self.view.layer.shouldRasterize = NO;}];

但是,似乎整个子视图都受到上面 UIView 动画的影响。任何建议或提示将不胜感激。

4

1 回答 1

7

如果你降低 a 的 alpha UIView,它的所有子视图的 alpha 都会降低。解决您的问题的方法是单独降低每个子视图的 alpha,但您想要的除外:

UIView emphasizedView = ...

[UIView animateWithDuration:0.75
                 animations:^{
                     for (UIView *view in self.view.subviews) {
                         if (view != emphasizedView) {
                             view.alpha = 0.5f;
                         } else {
                             view.alpha = 1;
                         }
                     }

                 }
                 completion:^(BOOL finished){self.view.layer.shouldRasterize = NO;}];
于 2013-09-15T23:04:10.657 回答