以编程方式在UIImage和UILabel之间添加图像

时间:2012-09-20 04:46:35

标签: iphone objective-c ios

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

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

然后我想要的顺序是, 1 2 3

我得到的是

1 3 2

2与我的标签重叠。我尝试过Send to Back,Bring to Front和bringSubviewToFront。它不起作用。

6 个答案:

答案 0 :(得分: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];

答案 1 :(得分:0)

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

这会将您的图像和标签按照您想要的特定顺序放置:)

答案 2 :(得分:0)

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

#import <QuartzCore/QuartzCore.h>

并在您的实施文件中

your_Label.layer.zPosition=your_secondImage.layer.zPosition+1;

答案 3 :(得分:0)

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

答案 4 :(得分:0)

如果您想要显示BG Image(1),那么您也可以使用UIView而不是UIImageView。您也可以使用UIImageView执行相同操作。

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

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

现在,使用UIImageView创建UIImage(2)并在frame内设置UIView,同时创建UILabel(3)根据{{​​1}}给出frame,并UIView。就这样。你做完了!。

答案 5 :(得分:0)

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

为UIImageView设置属性masksToBounds:YES。