0

我有一个UIImage上面,我应该以UIImage编程方式添加另一个,上面会有一个UILabel. 我成功添加了图像,但它与标签重叠。

如果 1. BG 图像 2. 要以编程方式添加的图像 3. 标签,

那么我想要的序列是 1 2 3

我得到的是

1 3 2

2 与我的标签重叠。我尝试过发送到后面、放在前面和bringSubviewToFront. 它不起作用。

4

6 回答 6

1
UIImageView *img2=[[UIImageView alloc] initWithImage: [UIImage imageNamed: @"TDK 3 Speaker.png"]];
//img2.backgroundColor=[UIColor clearColor];
[BgImage addSubview:img2];
UILabel *lblText=[[UILabel alloc]initWithFrame:CGRectMake(200, 0, 200, 40)];
lblText.text=@"I am Here";
//lblText.backgroundColor=[UIColor clearColor];
[BgImage addSubview:lblText];
于 2012-09-20T05:36:44.620 回答
0

您应该做的是在该序列本身中添加特定图像,即在 ViewWillAppear 或 ViewDidLoad 方法中使用该方法 self.view addSubview:BGimage。然后在前一个图像上添加下一个图像,如 BGimage addSubview:image2. 同样在 Image 2 上添加 UILabel Image2 addSubview:Label

这会将您的图像和标签放在您想要的特定顺序中:)

于 2012-09-20T04:53:44.947 回答
0

试试这个,添加 QuartzCore.framework 并在你的头文件中

#import <QuartzCore/QuartzCore.h>

在你的实现文件中

your_Label.layer.zPosition=your_secondImage.layer.zPosition+1;
于 2012-09-20T04:57:06.120 回答
0

添加的顺序在这里很重要,后面的在前面添加子视图应该按顺序调用,首先是BGImage,然后是Image,然后是Label

于 2012-09-20T05:12:56.417 回答
0

如果你想显示 BG Image (1) 那么你也可以使用UIView代替UIImageView你也可以做同样的事情UIImageView

[yourUIView setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"yourBackGroundImage"]]];

[yourUIView setFrame:CGRect(x,y,width,height)]; //yourExpectedFrame;

现在,创建一个UIImageView(2)并在其中UIImage设置 a ,还创建一个(3) 并根据the和相应的 with给出它。就这样。你完成了!frameUIViewUILabelframeUIViewUIImageView

于 2012-09-20T05:15:21.923 回答
0

我不确定,但你试试这个:

为 UIImageView 设置属性 maskToBounds: YES。

于 2012-09-20T06:52:38.577 回答