【问题标题】:Add overlay image on top of drawRect在 drawRect 上添加覆盖图像
【发布时间】:2013-05-12 17:05:24
【问题描述】:

我有一个 UIView 子类,我在 drawRect 方法中绘图。

如何在 drawRect 目标层之上添加叠加图像?

我在initWithFrame 方法中添加以下内容:

    //add the image overlay
    UIImageView *overlageImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"downloaderFront.png"]];
    overlageImage.center = self.center;
    [self.layer addSublayer:overlageImage.layer];
    //replacing the above line with below line does not fix either
    [self addSubview:overlageImage];

此图像在 drawRect 绘图的顶部不可见。

【问题讨论】:

    标签: ios uiview drawrect


    【解决方案1】:

    层的东西肯定是错的。只需这样做:

    UIImageView *overlageImage = 
        [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"downloaderFront.png"]];
    [self addSubview:overlageImage];
    

    你可以玩overlageImage的框架,得到你想要的位置。

    至于您的实际问题:设置断点。我怀疑您会发现您的代码甚至从未运行(因为您的视图的 initWithFrame 从未被调用)。这只是一个猜测——你没有说这个 UIView 子类实例是如何进入界面的——但这是一个很常见的错误,人们应该总是首先怀疑明显的错误!

    【讨论】:

    • 我正在这样做,它不起作用。 drawRect 在视图上呈现。
    • 好的,很好的信息。但是你应该在你原来的问题中这么说。
    • 那么为什么不将覆盖的图像绘制为 drawRect 的 part 呢?
    • 顺便说一句,我认为您在这里遇到困难这一事实表明其他问题存在问题。正确编写的drawRect 不会绘制在子视图之上!但是,您最初的问题没有提供任何信息来推断可能出现的问题。再次怀疑显而易见的事情:也许您正在第一个视图之上添加另一个视图副本。
    猜你喜欢
    • 1970-01-01
    • 2021-12-24
    • 1970-01-01
    • 2021-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-04
    • 1970-01-01
    相关资源
    最近更新 更多