0

我正在尝试将图像作为背景添加到 UILabel,但我的 UILabel 的标题无法看到,即使我尝试将背景图像发送到后面。我的代码在下面,任何关于如何帮助解决这个问题的建议都会很棒,谢谢!

UIImageView *labelBackground = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image.png"]];
[myLabel addSubview:labelBackground];
[myLabel sendSubviewToBack:labelBackground];
myLabel.backgroundColor = [UIColor clearColor];
[myLabel setText:title];
4

2 回答 2

1

尝试将 UILabel 添加为 UIImageView 的子视图,而不是相反。

这将导致 UIImageView 成为标签的“容器”,因此标签位于 UIImageView 的顶部。

于 2013-05-13T18:34:44.627 回答
1

当您将视图(您的图像视图)作为子视图添加到另一个视图(您的标签)时,子视图将始终位于其父视图的前面。他们要么需要是兄弟姐妹:

[myContainer addSubview:labelBackground];
[myContainer addSubview:myLabel];

或者更好的是,标签应该是图像视图的子视图:

[labelBackground addSubview:myLabel];
[myContainer addSubView:labelBackground];

另一种解决方案可能是使用您的图像作为标签的背景颜色:

[myLabel setBackgroundColor:[UIColor colorWithPatternImage:myUIImage]];

但请注意,图像将被重复而不是居中或拉伸。

于 2013-05-13T18:35:05.073 回答