Iphone addSubview不工作

Iphone addSubview不工作,iphone,addsubview,Iphone,Addsubview,我将使用addSubview向图像添加标签,但这不起作用 代码如下: .h UIImageView *bgimage; IBOutet UILabel *loadingLabel; .m loadingLabel.text =@"......"; bgimage = [[UIImageView alloc] initWithFrame:CGRectMake(0,0,320,480)]; bgimage.image = [UIImag

我将使用addSubview向图像添加标签,但这不起作用

代码如下:

.h
    UIImageView *bgimage;
    IBOutet UILabel *loadingLabel;


.m
    loadingLabel.text =@"......";
    bgimage = [[UIImageView alloc] initWithFrame:CGRectMake(0,0,320,480)];
    bgimage.image = [UIImage imageNamed:@"Wait.png"];
    [self.view addSubview:bgimage];
    [bgimage addSubview:loadingLabel];
截图:

“Tisch wird reserviert…”是加载标签,并且标签应位于UiImage中


这是带有第二个答案代码的“布局”

您不能将子视图添加到uiimageview,因为drawRect:将永远不会被调用。 资料来源: “UIImageView”类经过优化,可以将其图像绘制到显示器上。UIImageView不会调用子类的drawRect:方法。如果您的子类需要自定义绘图代码,建议您使用UIView作为基类

解决方案: 按照建议,使用uiview同时包含标签和imageview,然后使用uiview的-bringSubviewtoFront:将标签置于顶部。您也可以使用UIViews backgroundimage显示图像,然后在该视图中将标签作为子类。我想这取决于您所处的情况

编辑:您应该阅读以下内容:
我误读了这个问题,似乎你可以向UIImageView添加子视图,就像Zev在评论中指出的那样。现在我猜-bringSubviewToFront帮了你的忙,而我的其余答案虽然不是真的有害,但没有必要。很抱歉。

你不能向UIImageView添加子视图,因为drawRect:will n有人打过电话。 资料来源: “UIImageView类经过优化以将其图像绘制到显示器上。UIImageView不会调用子类的drawRect:方法。如果您的子类需要自定义绘图代码,建议您使用UIView作为基类。”来自apple文档:

解决方案: 按照建议,使用uiview同时包含标签和imageview,然后使用uiview的-bringSubviewtoFront:将标签置于顶部。您还可以使用UIViews backgroundimage来显示您的图像,然后在该视图中将标签作为子类。我想这取决于你的处境

编辑:您应该阅读以下内容: 我误解了这个问题,似乎可以向UIImageView添加子视图,就像Zev在评论中指出的那样。现在我猜-bringSubviewToFront帮了你一把,我剩下的答案虽然不是真的有害,但没有必要。对不起

将代码更改为

h

m

它将起作用。

将代码更改为

h

m



它会起作用的。

@Nils-事实上,我的消息来源有点不对劲,我有点误解了我们的观点。但我很高兴这个解决方案也适用于你的情况。当我找到正确的来源时,我会调查一下,并用正确的来源更正我的答案。是的,我认为这听起来不正确。我已经多次将子视图添加到
UIImageView
s
-drawRect:
不同于
-layoutSubviews
@ZevEisenberg-实际上,我在回答中谈论的是uiImageView的子类化。当我读它的时候,我没有得到Nils使用的addSubview。完全是我的错误…好的,谢谢,但我没有得到以下信息:(我如何在UIImage上获得标签我发布了一个屏幕截图,但UIImage中没有标签(它位于UIImage上方)@Nils-事实上,我的源代码有点偏离了我们的观点。但我很高兴这个解决方案也适用于您的情况。我会研究它,并在找到正确的源代码后用正确的源代码更正我的答案。是的,我认为这听起来不太正确。我多次向
UIImageView
添加子视图。
-drawRect:
是不同的从
-layoutSubviews
@ZevEisenberg租赁-事实上,我在回答中谈论的是uiImageView的子类化。我在阅读时没有得到Nils使用的addSubview。完全是我的错误…好的,谢谢,但我没有得到以下信息:(我是如何在UIImage上获得标签的?我发布了一个屏幕截图,但UIImage中没有标签。)(位于图像上方)这意味着我需要在我的xib文件上添加UIImageView?是这样吗?目前我的xib文件上没有UIImageView,只有标签您的UILabel被添加到xib文件上。相反,在xib文件上添加UIImageView并在其上添加UILabel。您好,我已经测试了这一点,我锁得很难看,不是吗?事实上,我不知道你在想什么:-)。你能分享屏幕截图吗?要将UILabel加载到UIImageView中,你只需要将UILabel添加到UIImageView中。[your_imageView添加子视图:your_label]好的,我在我的问题中添加了一个屏幕截图。这是“布局”我在问题中添加了代码,但在UiImage中没有取消标签,但我有[bgimage addSubview:loadinglabel];这意味着我需要在我的xib文件上添加UIImageView?是这样吗?目前我的xib文件上没有UIImageView,只有标签您的UILabel被添加到xib文件上。相反,在xib上添加UIImageView并在其上添加UILabel。您好,我已经测试了这个,并且我锁得很难看,不是吗?现在是否有其他方法可以在UIImageView上添加标签事实上,我不知道你在想什么:-)。你能分享屏幕截图吗?要将UILabel加载到UIImageView中,你只需要将UILabel添加到UIImageView中。[your_imageView addSubview:your_label]好的,我在我的问题中添加了一个屏幕截图。这是“布局”我在问题中添加了代码,但在UiImage中没有取消标签,但我有[bgimage addSubview:loadinglabel];
IBOutet UIImageView *bgimage;
UILabel *loadingLabel;
bgimage.image = [UIImage imageNamed:@"Wait.png"];
loadingLabel = [[UILabel alloc] init];
loadingLabel.frame = CGRectMake(0, 0, 100, 50);
loadingLabel.text = @"testing";
[bgimage addSubview:loadingLabel];