2009-04-17 11 views

उत्तर

71

आप एक UIImageView पृष्ठभूमि छवि युक्त और UITextView भाई बहन के रूप में हो सकता है, तो इंटरफ़ेस बिल्डर में पाठ दृश्य छवि दृश्य ओवरलैप में ले जाएँ (या उन दोनों को एक ही जनक दृश्य में जोड़ने अगर यह प्रोग्राम के रूप में कर रही है)। आपको यह सुनिश्चित करने की भी आवश्यकता है कि टेक्स्ट व्यू अपारदर्शी नहीं है और इसे 0% अस्पष्टता पृष्ठभूमि दें।

+10

मेरे दिमाग में यह ऑब्जेजन की विधि में सही जवाब है, अगर पृष्ठभूमि छवि में "निचली सीमा" है तो उपयोगकर्ता टेक्स्ट टेक्स्ट के साथ पाठ दृश्य के साथ स्क्रॉल करेगा। – bpapa

+0

+1 अच्छी चाल है।और +1 - @bpapa से सहमत हैं। –

+2

तो आप UIImageView में एक भाई कैसे जोड़ते हैं? – jacobronniegeorge

1

के बारे में सुनिश्चित नहीं हैं, लेकिन आप निम्नलिखित कोशिश कर सकते हैं, यह सोचते हैं कि अपनी पृष्ठभूमि छवि एक UIImageView द्वारा नियंत्रित किया जाता है:

[myTextView addSubview: myImageView];

ध्यान दें कि आपको अपने UITextView के अल्फा/अपारदर्शी गुणों के मान को बदलने की आवश्यकता हो सकती है।

दयालु सम्मान।

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

मुझे लगता है कि duncanwilcox का उत्तर बेहतर है क्योंकि इस उत्तर में वर्णित विधि उपयोगकर्ता की तरह सामग्री के साथ "पृष्ठभूमि छवि" को स्क्रॉल करने का कारण बनती है। – bpapa

+1

आवंटित वस्तुओं को जारी करना याद रखें। के बाद: [textView addSubview: imgView]; जोड़ें: [imgView रिलीज]; अंत में जोड़ें: [textView रिलीज़]; – ma11hew28

+0

और यदि बेहतर छवि गुणवत्ता के लिए वांछित है, तो छवि को आकार बदलने योग्य बनाएं! – Mateus

11

बस एक स्पष्टीकरण, जब से @oxigen बाहर की कोशिश कर जवाब # 9, मैं बाहर इस लाइन कि पाया:

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

textView.frame के सापेक्ष है।

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

या कम टाइपिंग के साथ: '(...) initWithFrame: textView.bounds' –

41

@durai:: तो अपने x और y मूल्यों 0,0 होने के लिए यदि आप इसे पूरी तरह से ओवरलैप जिसका मतलब है कि आप की तरह कुछ चाहते हैं की जरूरत है आपकी छवि का एक ऊंचाई सीमा जिसके बाद सफेद पृष्ठभूमि प्रदर्शित होंगे यदि खाली पृष्ठभूमि नीचे स्क्रॉल होने के बाद प्रकट होती है तो आप एक ही छवि दोहरा सकते हैं।

यह उपयोगी हो सकता है:

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

अपवॉटिंग - सुनिश्चित नहीं है कि कोई भी इसे क्यों कम करेगा; यह एक निफ्टी समाधान है। – TomSwift

+0

यह वह है! –

+0

यह उत्तर और @duncanwilcox द्वारा दोनों एक अच्छे हैं। यह इस बात पर निर्भर करता है कि क्या आप अपनी पृष्ठभूमि को स्क्रॉल करना चाहते हैं या नहीं। – memmons

2

टाइलों पृष्ठभूमि के लिए मैं इस समाधान

UIImage *patternImage = [UIImage imageNamed:@"image.png"]; 
UIColor* color = [UIColor colorWithPatternImage:patternImage]; 
textView.backgroundColor = color; 
1
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]; 
6

मैं एक सरल विधि पृष्ठभूमि छवि स्थापित करने के लिए कैसे पाया पसंद है।

ज फ़ाइल

@interface FNTextView : UITextView 

@end 

मीटर फ़ाइल

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

@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 के लिए प्रलेखन देखें।

5
[txtView setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"image.png"]]]; 
संबंधित मुद्दे