我将使用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 ......”是loading标签,并且是UiImage中的标签
这是带有第二个答案的代码的“布局”
答案 0 :(得分:3)
将您的代码更改为...
·H
IBOutet UIImageView *bgimage;
UILabel *loadingLabel;
的.m
bgimage.image = [UIImage imageNamed:@"Wait.png"];
loadingLabel = [[UILabel alloc] init];
loadingLabel.frame = CGRectMake(0, 0, 100, 50);
loadingLabel.text = @"testing";
[bgimage addSubview:loadingLabel];
它会起作用。
答案 1 :(得分:2)
您无法将子视图添加到uiimageview,因为drawRect:永远不会被调用。 资源: “UIImageView类已经过优化,可以将图像绘制到显示器上。 UIImageView不会调用子类的drawRect:方法。如果您的子类需要自定义绘图代码,建议您使用UIView作为基类。“来自apple docs:https://www.google.de/#bav=on.2,or.r_qf.&fp=90e2434f04e1ee9b&q=uiimageview+class+reference&safe=off
解决方案: 如建议的那样,使用uiview包含标签和imageview,然后使用UIView的-bringSubviewtoFront:将标签置于顶部。您还可以使用UIViews backgroundimage来显示图像,然后在该视图中将标签作为子类。取决于你所处的情况,我想。
编辑:你应该读这个: 我误读了这个问题,看起来你可以将子视图添加到UIImageView,就像Zev在评论中指出的那样。现在我猜测-bringSubviewToFront为你做了伎俩,我的答案的其余部分,虽然不是真正有害,但是没有必要。对不起。