【问题标题】:Creating a texview with a resizable custom background创建具有可调整大小的自定义背景的 texview
【发布时间】:2013-09-09 15:10:20
【问题描述】:

好的,我已经找了一个多星期了,但找不到解决方案。我意识到这方面有很多问题,但大多数都是针对自定义底部而不是 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];

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

非常感谢任何帮助。

【问题讨论】:

    标签: ios image background textview


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 我从未想过使用不同的视图设置背景。我试试看。
    • 当解决方案如此简单时,我不敢相信我浪费了这么多时间。那是救命稻草,非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-21
    • 2020-12-20
    • 1970-01-01
    • 2018-12-23
    • 1970-01-01
    • 2014-07-24
    相关资源
    最近更新 更多