2010-01-16 15 views
15

मैं अपने आईफ़ोन प्रोग्राम में एक साधारण समूहबद्ध तालिका दृश्य में पृष्ठभूमि के रूप में एक निश्चित छवि का उपयोग करना चाहता हूं। दुर्भाग्यवश, कोई फर्क नहीं पड़ता कि मैं क्या करता हूं, पृष्ठभूमि हमेशा ठोस सफेद होती है। मैंने इस साइट पर कई अनुमानित समाधानों का पालन किया है और दूसरों का कोई फायदा नहीं हुआ है। यहाँ तालिका दृश्य नियंत्रक वर्ग के viewDidLoad विधि में प्रासंगिक कोड (ध्यान दें, इस कोड सादगी की खातिर एक छवि के बजाय एक ठोस नीले रंग का उपयोग करता है) है:UITableViewController कोड में UITableView के पीछे UIView जोड़ें

self.tableView.opaque = NO; 
self.tableView.backgroundColor = [UIColor clearColor]; 
UIView *backgroundView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)]; 
backgroundView.backgroundColor = [UIColor blueColor]; 
[self.tableView.window addSubview:backgroundView]; 
[backgroundView release]; 

मुझे लगता है मैं स्थिति नहीं कर रहा हूँ कि backgroundView सही जगह पर देखें। मैंने sendToBack को भेजने का प्रयास किया है :, लाने के लिए टॉफ्रंट :, और अन्य लेकिन मुझे हमेशा एक सफेद पृष्ठभूमि मिलती है। क्या यह UITableViewController के भीतर से करना संभव है? क्या मुझे इंटरफेस बिल्डर का उपयोग करना चाहिए?

उत्तर

19

उपयोग UITableView के subviews संपत्ति आपकी पृष्ठभूमि जोड़ने के लिए:

[self.tableView addSubview:backgroundView]; 
[self.tableView sendSubviewToBack:backgroundView]; 

इसके अलावा, अपने सेल/हैडर आदि शायद पारदर्शी करने के लिए सेट किया जा करने के लिए अपने backgroundView दिखाई दे सकता है के लिए की आवश्यकता होगी।

+0

'सबव्यू 'संपत्ति एक' एनएसएआरएआरई 'लौटाती है, जो' -addSubview:' विधि का जवाब नहीं देती है। –

+0

अच्छा पकड़ - तय। आपको केवल 'UIView'' की 'addSubview' विधि की आवश्यकता है। –

3

मैं बस UITableView की backgroundColor संपत्ति सेट कर दूंगा। आप (यदि यह काफी बड़ा नहीं पूरे दृश्य भर में दोहराया जाएगा,) एक UIColor में एक UIImage परिवर्तित करने के लिए UIColor के +colorWithPatternImage: विधि का उपयोग कर सकते हैं:

// From within UITableViewController's -viewDidLoad: 
UIImage *image = [UIImage imageNamed:"yourImage.png"]; 
self.tableView.backgroundColor = [UIColor colorWithPatternImage:image];

सीधे शब्दों में yourImage.png और [email protected] आपके आवेदन बंडल के आकार यह उचित रूप से जोड़ने के लिए, और तम तैयार हो।

+1

इसका परिणाम बेहद अजीब लग रहा है। –

+0

केवल कोशिकाओं के बीच की जगहों के लिए काम करने लगता है। टेबल हेडर, सेक्शन हेडर, और सेल के दोनों ओर की जगह छवि से मेल नहीं खाती है। –

+0

यह उपलब्ध दृश्यमान स्थान के अनुसार रंग प्रस्तुत करेगा, इसलिए छवि तालिका के शीर्ष या निचली पंक्तियों में "चिपके हुए" लगती है। – leolobato

14

आईओएस 3.2 के रूप में UITableView में backgroundView नामक एक संपत्ति है। तो बजाय किसी भी subviews जोड़ने के लिए, बस इस कार्य करें:

self.tableView.backgroundView = backgroundView; 

तालिका दृश्य तालिका का आकार करने के लिए पृष्ठभूमि दृश्य का आकार बदलने का ख्याल रखना होगा। पृष्ठभूमि दृश्य तालिका कक्षों के साथ नहीं बढ़ेगा। दूसरे शब्दों में, यदि पृष्ठभूमि दृश्य एक छवि दृश्य है, तो छवि स्क्रीन पर लॉक होने वाली कोशिकाओं के साथ स्क्रीन पर लॉक रहने के लिए दिखाई देगी। यदि पृष्ठभूमि दृश्य मौजूद होता है तो डिफ़ॉल्ट तालिका दृश्यों में सेल के उचित तत्व स्वचालित रूप से स्पष्ट करने के लिए स्मारक होते हैं।

+0

पृष्ठभूमि सेट करना एक छवि का उपयोग कर रंग प्रत्येक सेल पंक्ति के बाहरी क्षेत्रों में समस्याएं पैदा करता है। यह बहुत अच्छा काम करता है। – nh32rg

+0

आईओएस 7/8 में मेरे लिए अगर मैं पृष्ठभूमि सेट करता हूं तो यह कोशिकाओं को कवर करता है। –

संबंधित मुद्दे