我上面有一个UIImage
,我应该以编程方式添加另一个UIImage
,在其上面会有一个UILabel
。我成功添加了图像,但它与Label重叠。
如果1. BG图像2.Image以编程方式添加3.标签,
然后我想要的顺序是, 1 2 3
我得到的是
1 3 2
2与我的标签重叠。我尝试过Send to Back,Bring to Front和bringSubviewToFront
。它不起作用。
答案 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。