Изображение UITextView
Как настроить фоновое изображение на UITextView
?
- Обоснованное выравнивание в UITextView - iPhone
- Как изменить цвет части TextView?
- Как сделать UITableViewCell с UITextView внутри, который динамически регулирует его высоту на основе UITextView?
- Как я могу сделать ссылку на клики в NSAttributedString?
- Изменить размер шрифта для заполнения UITextView?
- Как resize UITextView на iOS при появлении клавиатуры?
- Ограничить количество строк для UITextview
- Клавиатура не отображается при нажатии текстового поля в UIWebView
Вы можете иметь UIImageView
содержащий фоновое изображение, и UITextView
как братья и сестры, а затем в UITextView
интерфейса перемещать текстовое представление, чтобы перекрывать представление изображения (или добавлять их к одному и тому же родительскому виду, если делать это программно). Вы также должны убедиться, что текстовое представление не является непрозрачным и дает ему 0% -ный фон непрозрачности .
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];
@durai: у вашего изображения есть ограничение по высоте, после которого появится белый фон, если после его прокрутки появится пустой фон, тогда вы можете повторить одно и то же изображение.
Это может быть полезно:
textView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed: @"Image.png"]];
Только одно уточнение, когда вы опробовали ответ # 9 от @oxigen , я узнал, что эта строка:
UIImageView *imgView = [[UIImageView alloc]initWithFrame: textView.frame];
Относительно textView.frame
. Таким образом, ваши значения x
и y
должны быть равны 0,0, если вы хотите, чтобы он полностью перекрывался, что означает, что вы хотите что-то вроде:
UIImageView *imgView = [[UIImageView alloc]initWithFrame:textView.bounds];
Я нашел один простой способ установки фонового изображения.
h файл
@interface FNTextView : UITextView @end
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)]; } ...
[txtView setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"image.png"]]];
Для мозаичного фона мне нравится это решение
UIImage *patternImage = [UIImage imageNamed:@"image.png"]; UIColor* color = [UIColor colorWithPatternImage:patternImage]; textView.backgroundColor = color;
Не уверен, но вы можете попробовать следующее, предполагая, что ваше фоновое изображение обрабатывается UIImageView:
[myTextView addSubview: myImageView];
Обратите внимание, что вам может потребоваться изменить значение свойств альфа / непрозрачность вашего UITextView.
С уважением.
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];
Ответы @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 .