我有一個包含各種子視圖(UIImageViews,UILabels和標準UIViews)的UIScrollView。一些UIImageView部分被其他UIViews覆蓋。褪色UIView允許子視圖被看到
但是,當我淡出UIScrollView時,UIImageViews的部分遮蓋部分將暴露在動畫的短暫時刻。
我希望能夠在相同的動畫中同時淡出scrollview及其所有內容 - 即不顯示任何部分覆蓋的圖像。
如果這是不可能的,我總是可以在所有其他控件的頂部添加一個UIView,並將它從alpha 0淡入到1以隱藏所有內容,但我確定有一種方法可以在視圖上執行完全淡入淡出和所有的子視圖。
我嘗試這樣做:
[UIView beginAnimations:nil context:NULL];
[scrollViewResults setAlpha:0.0f];
[UIView commitAnimations];
我已經試過這樣:
- (IBAction)questionGroupChanged:(UIButton*)sender {
[UIView beginAnimations:nil context:NULL];
[self fadeViewHierarchy:scrollViewResults toAlpha:0.0f];
[UIView commitAnimations];
}
- (void)fadeViewHierarchy:(UIView*)parentView toAlpha:(float)alpha {
[parentView setAlpha:alpha];
for (UIView *subView in parentView.subviews) {
[self fadeViewHierarchy:subView toAlpha:alpha];
}
}
但我仍然沒有破解它。有任何想法嗎?
另外不要忘記設置適當的比例,否則你的光柵化淡入淡出會在視網膜顯示上看起來很糟糕。 view.layer.rasterizationScale = [UIScreen mainScreen] .scale; – dizy