Comment ajouter une image de fond à UITextView ?
Réponses
Trop de publicités?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.
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 : 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"]];
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];
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)];
}
...