0

1 週間以上探し続けましたが、解決策が見つかりません。これについて多くの質問があることは承知していますが、ほとんどは、テキストビューではなくカスタムボトムに対してこれを行うことに関するものです.

カスタム背景画像を使用するテキストビューを作成しようとしています。問題は、背景画像はサイズ変更可能なものでなければならないということです。

私がやっていることは、最初に背景画像を設定することです:

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

では、この画像を背景画像として追加するにはどうすればよいでしょうか。私が見つけたほとんどのソリューションは colorWithPatterImage、次のようにメソッドを使用します。

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

ただし、サイズ変更可能な画像を使用しようとしている場合、これは機能しません (これは、UImageサイズ変更ではなく、指定したものを並べて表示するようです)。

私が見つけた他の唯一の解決策は、画像をサブビューとしてテキストビューに追加し、次に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 に答える