我不明白如何更改 View 的 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 文档中,它没有说在使用此属性之前应该执行任何操作。有谁知道我错过了什么?
谢谢, 文森特。
最佳答案
为了使属性的 zPosition
对图层的相对位置产生影响,所有图层必须是彼此的同级图层。也就是说,这在 View 或层层次结构的不同级别之间不起作用,但适用于层次结构的同一级别。例如,您不能使用此方法将 View 放置在其 super View 下方。
无论如何,我认为您不会使用 zPosition
属性看到您想要的从背景到前景的平滑动画。一旦某个图层的相对 Z 位置高于另一个同级图层,它就会弹出到屏幕上。即使您对 Z 位置进行动画处理,当一层经过另一层时,您仍然会看到瞬时变化。您可能需要手动将图层的不透明度设置为动画,然后再返回,以实现从背景到前景的更平滑过渡。
如果您想了解图层堆叠和相对定位的一些视角,请参阅 this question 的回复.
关于iphone - 如何更改 UIView zPosition?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3537042/