37 votes

Image de fond de l'UITextView

Comment ajouter une image de fond à UITextView ?

72voto

duncanwilcox Points 2923

Vous pouvez avoir une UIImageView contenant l'image d'arrière-plan et la UITextView comme frères et sœurs, puis, dans Interface Builder, déplacer la vue texte pour qu'elle chevauche la vue image (ou les ajouter toutes deux à la même vue parent si vous le faites par programme). Vous devez également vous assurer que la vue de texte n'est pas opaque et lui donner un arrière-plan à opacité nulle.

45voto

oxigen Points 4604
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];

41voto

Kenpachi Points 1578

@durai : votre image a une hauteur limite après laquelle un fond blanc apparaîtra si le fond vide apparaît après le défilement vers le bas, alors vous pouvez répéter la même image. ceci pourrait être utile : :

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

11voto

CodePoet Points 71

Juste une précision, en essayant la réponse #9 d'oxigen, j'ai découvert que cette ligne :

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

est relative au bloc-texte. Ainsi, vos valeurs x et y doivent être égales à 0,0 si vous voulez qu'il se chevauche complètement, ce qui signifie que vous voulez quelque chose comme :

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

6voto

J'ai trouvé une méthode simple pour définir l'image de fond.

h fichier

@interface FNTextView : UITextView

@end

m fichier

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X