iphone - 如何更改 UIView zPosition?

标签 iphone core-animation

我不明白如何更改 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/

相关文章:

iphone - 在 uiimageview 中加载大图像时的内存消耗

iPhone只有在设备未连接到xcode时才会崩溃,如何理解崩溃日志?

java - 等待并通知 Objective c 中的等价物?

iphone - 使用 kCATransitionPush 向上滑动 UIView

ios - 更改 CATextLayer 的高度时文本跳转

ios - 渐变动画——减速和加速

iphone - 在 iPhone 上播放 CAF 声音的最简单方法?

iphone - 是否有用于开发iPhone/Android应用程序的多平台框架?

objective-c - 具有贝塞尔曲线和恒定速度的 CAKeyframeAnimation

cocoa - 是否可以将 CGPattern 图像背景颜色锚定到 CALayer 的中心?