Подтвердить что ты не робот

Изображение UITextView

Как настроить фоновое изображение на UITextView?

4b9b3361

Ответ 1

У вас может быть UIImageView, содержащий фоновое изображение, и UITextView как братья и сестры, затем в построителе интерфейса переместите текстовое представление, чтобы наложить на него изображение (или добавьте их к одному и тому же родительскому виду, если это делается программно), Вам также необходимо убедиться, что текстовое представление не непрозрачно и дает ему 0% opacity background.

Ответ 2

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];

Ответ 3

@durai: У вашего изображения есть ограничение по высоте, после которого появится белый фон, если после его прокрутки появится пустой фон, тогда вы можете повторить одно и то же изображение.

Это может быть полезно:

textView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed: @"Image.png"]];

Ответ 4

Просто одно уточнение, когда вы опробовали ответ # 9 от @oxigen, я узнал, что эта строка:

UIImageView *imgView = [[UIImageView alloc]initWithFrame: textView.frame];

Относительно textView.frame. Поэтому ваши значения x и y должны быть равны 0,0, если вы хотите, чтобы он полностью перекрывался, что означает, что вы хотите что-то вроде:

UIImageView *imgView = [[UIImageView alloc]initWithFrame:textView.bounds];

Ответ 5

Я нашел один простой способ установки фонового изображения.

h файл

@interface FNTextView : UITextView

@end

m file

...
- (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)];
}
...

Ответ 6

[txtView setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"image.png"]]];

Ответ 7

Для мозаичного фона мне нравится это решение

UIImage *patternImage = [UIImage imageNamed:@"image.png"];
UIColor* color = [UIColor colorWithPatternImage:patternImage];
textView.backgroundColor = color;

Ответ 8

Не уверен, но вы можете попробовать следующее, считая, что ваше фоновое изображение обрабатывается UIImageView:

[myTextView addSubview: myImageView];

Обратите внимание, что вам может потребоваться изменить значение свойств alpha/opaque вашего UITextView.

С уважением.

Ответ 9

UITextView *textView=[[UITextView alloc]initWithFrame: CGRectMake(20, 20, 40, 40)];
textView.text = @"this is a test \n this is test \n this is a test";
UIImageView *img = [[UIImageView alloc]initWithFrame: textView.frame];
img.image = [UIImage imageNamed: @"image.png"];
[self.view addSubview:textView];
[self.view insertSubview:img belowSubview:textView];

Ответ 10

Ответы @dulcanwilcox и @oxigen работают, но добавление должно было сделать изменение фонового изображения, если изображение используется для отображения какой-либо границы.

UITextView *textView = [[UITextView alloc]initWithFrame: window.frame];
textView.text = @"Some text...";

UIImageView *imgView = [[UIImageView alloc]initWithFrame: textView.frame];
imgView.image = [[UIImage imageNamed: @"image"] resizableImageWithCapInsets:UIEdgeInsetsMake(8, 8, 8, 8)];

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

[window addSubview:textView];

Ознакомьтесь с документацией для resizableImageWithCapInsets: (UIEdgeInsets) capInsets.