我不明白如何更改视图的zPosition,我试试这个但没有任何反应:
- (void)viewDidLoad {
[super viewDidLoad];
UIView *view = [[[UIView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)] autorelease];
view.backgroundColor = [UIColor blackColor];
view.layer.zPosition = -400;
[self.view addSubview:view];
}
在CALayer文档中,它没有说在使用此属性之前应该做任何事情。有谁知道我错过了什么?
谢谢, 文森特。
答案 0 :(得分:11)
要使某个属性的zPosition
对图层的相对位置产生影响,所有图层必须是彼此的兄弟。也就是说,这在视图或层次结构的不同级别之间不起作用,但可以与层次结构的同一级别的那些级别一起使用。例如,您无法使用此视图在其超级视图下方放置视图。
在任何情况下,我都不认为你会看到使用zPosition
属性从背景到前景的平滑动画。一个层在相对Z位置比另一个兄弟层更高的瞬间,它弹出到屏幕上。即使您为Z位置设置动画,当一个图层通过另一个图层时,您仍会看到瞬间变化。您可能需要手动为图层的不透明度设置动画,然后返回以实现从背景到前景的更平滑过渡。
如果您想要对图层堆叠和相对定位有所了解,请参阅对this question的回复。
答案 1 :(得分:0)
您可以使用zPosition
轻松为CALayer
的{{1}}属性设置动画。
UIView.transitionWithView()