0

好吧,我已经找了一个多星期了,找不到解决办法。我意识到有很多关于这个的问题,但大多数都是关于为自定义底部而不是 textviews 做这个。

我正在尝试制作一个使用自定义背景图像的文本视图。问题是,背景图像必须是可调整大小的。

我正在做的是首先设置背景图像:

UIImage *image = [[UIImage imageNamed:@"image.png"]
 resizableImageWithCapInsets:UIEdgeInsetsMake(top, left, bottom, right)];

现在,我该如何将此图像添加为背景图像?我发现的大多数解决方案都使用该 colorWithPatterImage方法,如下所示:

 textView.backgroundColor = [UIColor colorWithPatternImage:
  [UIImage image]];

但是,当您尝试使用可调整大小的图像时,这不起作用(这似乎平铺了UImage您给它的图像,而不是调整它的大小)。

我发现的唯一其他解决方案是将图像作为子视图添加到 textview,然后使用以下sendSubviewToBack方法:

[textView addSubview: imgView];
[textView sendSubviewToBack: imgView];
[window addSubview: textView];

不过,由于某种原因,使用这种方法开始给我带来非常奇怪的行为(如果需要,我可以详细说明)。

任何帮助是极大的赞赏。

4

1 回答 1

1

据我所知,我认为不可能使用可拉伸的、基于 UIImage 的 UIColor。这就是文档所说的:

您可以使用图案颜色来设置填充或描边颜色,就像设置纯色一样。在绘图期间,图案颜色的图像会根据需要平铺以覆盖给定区域。

我刚刚尝试将可拉伸的 UIImage 的 CGImage 添加到 UITextView 的 CALayer 中,但这似乎没有帮助。

我认为您将不得不求助于文本视图下方与框架和边框半径匹配的某个视图,或者您可以继承 UIColor,创建一个新的初始化程序并覆盖该setFill方法。

于 2013-09-09T15:31:26.703 回答