围绕每个单词iPhone的圆角矩形

时间:2011-11-01 17:41:03

标签: iphone view background label

我必须在标签的每个单词周围创建一个圆角矩形,如下所示:
tag
我可以使用像stretchableImageWithLeftCapWidth:topCapHeight:这样的方法,还是可以将其设置为背景视图?

非常感谢你!

2 个答案:

答案 0 :(得分:0)

你不能轻易地逐字逐句地做到这一点。我将创建一个父视图,然后将文本拆分为单词并为每个单词添加标签。您的可拉伸图像方法适用于各个标签。

答案 1 :(得分:0)

拉伸图像会让你变得难看,特别是如果你的字很长 我会像这样处理:

创建此层次结构:

- UIView theView
-- UIView imagesView
--- UIImageView startBackgroundImage
--- UIImageView endBackgroundImage
-- UILabel theLabel

theView将是包含您的标签和背景图片的视图,theLabel将包含标签本身,imagesView包含您将需要的所有图像视图。

首先,我们将设置标签的文本并获取字符串的大小:

theLabel.text = @"Food";
theLabel.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"content.png"]];
CGSize textSize = [[theLabel text] sizeWithFont:[theLabel font]];

最后,我们将设置View的大小(imagesView将具有相同的大小)以及startBackgroundImage和endBackgroundImage的位置。

int height = startBackgroundImage.image.size.height;

int startBackgroundImageWidth = startBackgroundImage.image.size.width;
int endBackgroundImageWidth = endBackgroundImage.image.size.width;
theView.frame = CGRectMake(xYouWant,yYoutWant,textSize.width+startBackgroundImageWidth+endBackgroundImageWidth,height);
startBackgroundImage.frame = CGRectMake(0,0,startBackgroundImage.frame.width,startBackgroundImage.frame.height);
endBackgroundImage.frame = CGRectMake(textSize.width+endBackgroundImageWidth,0,endBackgroundImage.frame.width,endBackgroundImage.frame.height);

无法上传图片,所以我会尝试描述: startBackgroundImage将包含图像的左侧(圆形)
endBackgroundImage将包含图像的右侧(圆形)
而content.png将包含几个像素宽的图像,将用作图案。