2011-05-31 3 views
2

Je le code suivant:UIImageView comme fond de UITextView

UIImageView *imgView = [[UIImageView alloc]initWithFrame: description.frame]; 
imgView.image = [UIImage imageNamed: @"textview.png"]; 
[description addSubview: imgView]; 
[description sendSubviewToBack: imgView]; 
[imgView release]; 

où la description est un UITextView ici. J'ai une image que je voudrais définir comme toile de fond de ceci. Cependant l'interface résultante ressemble à ceci:

La taille de l'image est exactement la même que la taille de la UITextView

+0

Check http://stackoverflow.com/questions/759658/uitextview-background-image – Jhaliya

+0

et je l'ai la même chose exacte que ce poste et pourtant le résultat que j'ai eu est comme ci-dessus – aherlambang

Répondre

3
UIImageView *imgView = [[UIImageView alloc]initWithFrame: CGRectMake(0,0,description.frame.size.width,description.frame.size.height)]; 
imgView.image = [UIImage imageNamed: @"textview.png"]; 
[description addSubview: imgView]; 
[description sendSubviewToBack: imgView]; 
[imgView release]; 

l'image est placée à bon endroit parce que votre description.frame.origin.x! = 0, son pour cette raison que vous obtenez bug.

0

Au lieu de UITextView vous pouvez utiliser la UILabel et définir la couleur UILable à incolore. alors vous obtiendrez la sortie désirée ..

+1

Eh bien, il ne sera pas plusieurs lignes alors et non modifiable étiquette – aherlambang

+0

avoir plusieurs lignes ... mais il n'est pas éditable ... – Aravindhan

0

Vous pouvez ajouter imageView (avec votre image) dans votre fichier nib, puis y placer textView.

0

Vous pouvez définir l'image comme arrière-plan comme suit:

UITextView *view = [[UITextView alloc] initWithFrame: CGRectMake(x,y,width,height)]; 
view.backgroundColor = [UIColor colorWithPatternImage: [UIImage imageNamed:@"imagename.png"]]; 

[self.view addSubView: text]; 

Hope this helps

Questions connexes