【问题标题】:Change layer of images更改图像层
【发布时间】:2012-08-15 16:20:33
【问题描述】:

有没有办法改变UIImageView 对象被绘制的“层”?每当我将图像视图添加到视图控制器时,它默认会在所有其他视图之上绘制最近添加的视图。因此,如果我决定添加一个“背景”图像,它现在是一个“前景”图像并阻止其他所有内容。

IB 选项或UIImageView 类参考中没有任何内容,我无法在 SO 上找到任何内容。这个问题已经有一段时间了,奇怪的是我之前没有看到任何关于它的东西......我认为这可能只是我的语义来自德尔福背景。

无论如何,有人知道这个问题/ICANHAZTEHCODEZ 来解决它吗?还是这和UIScrollView的问题一样,开发环境支持不好。

当我尝试使用编辑器排列子视图时会发生这种情况。

【问题讨论】:

  • 我不再运行博客了,如果您有问题,请与 H2CO3 交流。

标签: objective-c ios uiimageview


【解决方案1】:

您可以使用

以编程方式将 SubView 置于前端或将其发送到背景
[self.view bringSubviewToFront:yourImageView];

[self.view sendSubviewToBack:yourImageView];

self.view 必须是你的 imageView 的父视图时

在 IB 中,选择 UIControl,然后从顶部菜单栏中选择 Editor->arrage->send to front or back

【讨论】:

  • 感谢您的提示...由于某种原因,我的发送选项显示为灰色。我可能必须将图像添加到头文件中,然后调用bringSubviewToFront
  • 您必须先在您的 IB 中选择视图。否则它们会显示为灰色。
  • 是的,我选择了它,但是当我查看帮助文档时,它说新版本的 xcode 有时会随机执行此操作。无论如何,在您的帮助和stackoverflow.com/questions/3378234/… 下设法解决了它
  • 有一个简单的解决方法。如您所见,在您选择 imageView 的左侧有一个所有视图的列表。您可以随时上下拖动这些控件,从而更改它们的 z-index。往上拖就是后退,往下拖就是往前送。
  • 是的,我就是这么做的。效果很好。
【解决方案2】:

当您使用UIViewaddSubview: 方法时,它会将其添加到视图堆栈的顶部,从而产生您所看到的内容。

您可以使用许多其他UIView 方法来确定子视图的顺序。例如:

- (void)insertSubview:(UIView *)view aboveSubview:(UIView *)siblingSubview;

- (void)insertSubview:(UIView *)view atIndex:(NSInteger)index;

- (void)sendSubviewToBack:(UIView *)view;

- (void)bringSubviewToFront:(UIView *)view;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-23
    • 2016-02-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多