UITextView背景图片

Ily*_*ski 37 iphone cocoa-touch uitextview

如何设置背景图像UITextView

dun*_*cox 72

您可以UIImageView包含背景图像和UITextView兄弟姐妹,然后在Interface Builder中移动文本视图以重叠图像视图(或者如果以编程方式执行,则将它们添加到同一父视图中).您还需要确保文本视图不是不透明的,并为其提供0%不透明度背景.

  • 在我看来,这是正确的答案,在oxigen的方法中,如果背景图像具有"底部边框",则用户将看到它在输入文本时随文本视图一起滚动. (10认同)
  • 那么你究竟如何为UIImageView添加一个兄弟? (3认同)

oxi*_*gen 45

UITextView *textView = [[UITextView alloc]initWithFrame: window.frame];
textView.text = @"text\n text\n text";
UIImageView *imgView = [[UIImageView alloc]initWithFrame: textView.frame];
imgView.image = [UIImage imageNamed: @"myImage.jpg"];
[textView addSubview: imgView];
[textView sendSubviewToBack: imgView];
[window addSubview: textView];
Run Code Online (Sandbox Code Playgroud)

  • 我认为duncanwilcox的答案是可取的,因为本答案中描述的方法将导致"背景图像"与用户键入的内容一起滚动. (7认同)

Zar*_*aki 41

@durai:您的图像有一个高度限制,如果在向下滚动后出现空白背景,则会出现白色背景,然后您可以重复相同的图像.

这可能会有所帮助:

textView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed: @"Image.png"]];
Run Code Online (Sandbox Code Playgroud)


Gus*_*avo 11

只有一点澄清,当试用@oxigen的答案#9时,我发现这一行:

UIImageView *imgView = [[UIImageView alloc]initWithFrame: textView.frame];
Run Code Online (Sandbox Code Playgroud)

是相对的textView.frame.因此x,y如果您希望它完全重叠,那么您的值和值必须为0,0这意味着您需要以下内容:

UIImageView *imgView = [[UIImageView alloc]initWithFrame:textView.bounds];
Run Code Online (Sandbox Code Playgroud)


Leo*_*nyk 6

我找到了一个简单的方法来设置背景图像.

h文件

@interface FNTextView : UITextView

@end
Run Code Online (Sandbox Code Playgroud)

m文件

...
- (void)drawRect:(CGRect)rect
{
    [self.bgImage drawInRect:rect];

    [super drawRect:rect];
}

- (void)initHandler
{
    self.bgImage = [[UIImage imageNamed:@"textview_bg"] resizableImageWithCapInsets:UIEdgeInsetsMake(4, 4, 4, 4)];
}
...
Run Code Online (Sandbox Code Playgroud)


Mos*_*sad 5

[txtView setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"image.png"]]];
Run Code Online (Sandbox Code Playgroud)