UITableView स्पष्ट पृष्ठभूमि


90

मुझे एहसास है कि आईओएस 7 आधिकारिक तौर पर जारी नहीं किया गया है और हमें इस पर चर्चा नहीं करनी चाहिए लेकिन मैं इस समस्या का पता लगाने की कोशिश कर रहा हूं। IOS 6 पर, मेरा टेबल व्यू पारदर्शी था और बहुत अच्छा लग रहा था। पहली बार iOS 7 चल रहा है, और पृष्ठभूमि सफेद है।

मैंने UIColor ClearColor को टेबल बैकग्राउंडर, सेल कलर इत्यादि बनाने की कोशिश की है लेकिन कोई बदलाव नहीं हुआ है।

इस समस्या से कैसे निपटा जाए?

टेबल


1
backgroundViewएक स्पष्ट एक के लिए मेज की स्थापना की कोशिश की ?
पूर्ववत

क्या आप वह कोड दिखा सकते हैं जहाँ आप पृष्ठभूमि का रंग सेट कर रहे हैं? माता-पिता के विचार के बारे में क्या? शायद तालिका दृश्य पृष्ठभूमि स्पष्ट है, लेकिन माता-पिता नहीं हैं?
सूपर

मैंने भी इसी बात पर गौर किया लेकिन जब मैंने वही ऐप इंस्टॉल किया जो कि मेरे मौजूदा वर्जन को iOS 7.0 से पहले करता था तो ऐसा नहीं हो रहा था। क्या यह समस्या xCode5.0 में है?
टोटमस मैक्सिमस

जवाबों:


123
    // Fix for iOS 7 to clear backgroundColor
    cell.backgroundColor = [UIColor clearColor];
    cell.backgroundView = [[UIView new] autorelease];
    cell.selectedBackgroundView = [[UIView new] autorelease];

सेलफोररौटइंडेक्सपैथ में

यह भी सुनिश्चित करें कि आपके टेबलव्यू में वास्तव में पारदर्शी पृष्ठभूमि है (स्टोरीबोर्ड में): यहां छवि विवरण दर्ज करें


(UITableView *) tableView cellForRowAtIndexPath: (NSIndexPath *) indexPath (UITableViewCell *) tableView - जॉर्ज, विधि के अंदर है कि कोड जोड़
IanStallings

1
मामलों के लिए, यदि आपको वास्तव में चयनित बैकग्राउंड व्यू की आवश्यकता है, तो आप निम्नलिखित को सेलफ़ोरराउटअंडइंडैक्सपाथ में डाल सकते हैं: cell.selectedBackgroundView = [[[UIImageView आवंटन] initWebImage: [UIImage imageNamed: @ "yourBgImage.png"] "autelage या यहां तक ​​कि awakeFromNib में: self.selectedBackgroundView = ... ध्यान दें, वह: self.backgroundColor = [UIColor clearColor]; iOS7 के अंतर्गत awakeFromNib में काम नहीं करता है। लेकिन: cell.backgroundColor = [UIColor clearColor]; आईओएस 7.0 के लिए केवल
सेलफ़ोररौटएंडएक्सएक्सपाथ

11
केवल पंक्ति जोड़ने की आवश्यकता है: cell.backgroundColor = [UIColor clearColor];
evya

यह आकर्षण सेल की तरह काम करता है ।backgroundColor = [UIColor ClearColor];
शाम

स्विफ्ट में यह कैसे करें?
कादिर हुसैन

58

इसे डालें:

cell.backgroundColor = [UIColor clearColor];

इस अनुभाग में:

cellForRowAtIndexPath

1
IOS 6 में, यह backgroundViewखाली दृश्य को सेट करने के लिए पर्याप्त है , लेकिन iOS 7 के लिए इस अतिरिक्त कोड की आवश्यकता है
केविन बॉर्डर

25

पहले nil को backgroundView सेट करने का प्रयास करें।

[self.tableView setBackgroundView:nil];
[self.tableView setBackgroundColor:[UIColor clearColor]];

सुनिश्चित नहीं है कि यह iOS7 के साथ प्रलेखन में बदलाव है या हमेशा से रहा है और सिर्फ पृष्ठभूमि रंग को प्रभावित नहीं किया है, लेकिन UITableView वर्ग संदर्भ @property backgroundView के अनुसार

"टेबल व्यू की पृष्ठभूमि का रंग सेट करने के लिए आपको यह गुण सेट करना होगा।"

संपादित करें: सही कोड वाक्य रचना


25

इसका उत्तर दिया गया है, लेकिन गलत तरीके से।

आपको नीचे प्रतिनिधि विधि को लागू करने की आवश्यकता है:

    - (void)tableView:(UITableView *)tableView  willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
    [cell setBackgroundColor:[UIColor clearColor]];
}

आप सेलफ़ोररॉएटइंडेक्सपैथ में फिक्स नहीं डाल सकते क्योंकि सेल के प्रस्तुत होने के बाद, और पृष्ठभूमि के साफ़ होने पर (धीमे उपकरणों पर) सेट होने से पहले यह एक सफेद पृष्ठभूमि को फ्लैश करेगा।

इस प्रतिनिधि विधि का उपयोग करें और आपकी समस्याएं हल हो गई हैं!


1
हाँ। IOS 7 के लिए यह पृष्ठभूमि को साफ़ करने का तरीका है। ऊपर दिए गए अन्य सभी सुझाव काम नहीं कर सकते हैं।
girish_vr

15

वास्तव में सेल बैकग्राउंड रंग बदलने के लिए आधिकारिक तौर पर सही जगह प्रलेखन के अनुसार अलग है ( UITableViewCell Class Reference ):

चाहे आप एक पूर्वनिर्धारित या कस्टम सेल का उपयोग करें, आप पृष्ठभूमि दृश्य संपत्ति का उपयोग करके या विरासत में मिली पृष्ठभूमि संपत्ति का उपयोग करके सेल की पृष्ठभूमि बदल सकते हैं। IOS 7 में, सेल में डिफ़ॉल्ट रूप से एक सफेद पृष्ठभूमि होती है; iOS के पुराने संस्करणों में, सेल एन्कोडिंग टेबल दृश्य के पृष्ठभूमि रंग को विरासत में लेते हैं। यदि आप किसी सेल की पृष्ठभूमि का रंग बदलना चाहते हैं, तो तालिका में ऐसा करें: willDisplayCell: forRowAtIndexPath: आपके तालिका दृश्य प्रतिनिधि की विधि।


मैं यह कोशिश कर रहा हूं, लेकिन पहले दिखाए गए सभी सेल में एक सफेद पृष्ठभूमि है। यदि मैं स्क्रॉल करके नए सेल बनाता हूं, तो उनके पास पारदर्शी पृष्ठभूमि होगी जो मुझे चाहिए। यह निश्चित नहीं है कि और क्या प्रयास करना है ...
डेविड डनहम

कोई बात नहीं, यह एक समय मुद्दा प्रतीत होता है। मैं awakeFromNib में सामान कर रहा था, जो बहुत जल्दी था।
डेविड डनहम


6

यह काफी निराशाजनक समस्या है। यहाँ मेरा वर्तमान समाधान है:

इसे अपने UITableViewCellउपवर्ग में जोड़ें ।

- (void)didMoveToSuperview {
    [super didMoveToSuperview];

    self.backgroundColor = [UIColor clearColor];
}

हे भगवान। धन्यवाद। मेरी रात बच गई। आपके उत्तर को स्वीकार किया जाना चाहिए था।
मीकल शटज

5

इसने मेरे लिए iOS7 + में काम किया:

self.tableView.backgroundColor =[UIColor blueColor];
self.tableView.opaque = NO;
self.tableView.backgroundView = nil;`

और फिर में cellForRowAtIndexPath:

cell.backgroundColor = [UIColor clearColor];


4

यह मेरे लिए केवल तभी काम करता है जब मैंने प्रत्येक सेल के लिए एक स्पष्ट पृष्ठभूमि का रंग और तालिका के लिए एक स्पष्ट रंग को संपादित किया हो .. किसी को भी

तालिका के लिए स्पष्ट रंग सेट करने के लिए:

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
    initMenu()
    myTableView.backgroundColor = UIColor.clearColor()
}

कोशिकाओं के लिए रंग सेट करने के लिए:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("tablecellid", forIndexPath: indexPath)
    cell.backgroundColor = UIColor.clearColor()
    return cell
}

3

एक बात अच्छी है। UITable का डिफ़ॉल्ट रंग सफेद प्रतीत होता है (मुझे नहीं पता क्यों)

पृष्ठभूमि सफेद

लेकिन बेहतर है कि बदलो।


उत्तम! वह गायब शांति थी। कोड की कोई अतिरिक्त लाइन की आवश्यकता नहीं है!
मॉर्फियस78

3

आग का सेट

tableView.backgroundColor = [UIColor clearColor];

दूसरा सेट

tableCell.backgroundColor = [UIColor clearColor];

3

तालिका दृश्य के लिए IB आउटलेट बनाएं @IBOutlet कमजोर var yourTable: UITableView!

देखने के भार में

override func viewDidLoad() {
    yourTable.delegate = self
    yourTable.dataSource = self

    yourTable.backgroundColor = UIColor.clearColor()
}

यदि आप सेल का रंग साफ़ करना चाहते हैं, तो यह भी करें

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    cell.backgroundColor = UIColor.clearColor() 

}

2

जब मैंने अपडेट किया , तो मेरे ऐप में, मुझे backgroundColorअपनी UITableViewCellकक्षा में [UIColor clearColor]रंग भरने के लिए सेट करना पड़ा iOS 7


2

प्रयत्न

[myTable setSeparatorStyle:UITableViewCellSeparatorStyleNone];
[myTable setSeparatorInset:UIEdgeInsetsZero];

तथा

cell.backgroundColor = [UIColor clearColor];

2

मेरे मामले में सेल एक xib का उपयोग करके बनाया गया था। ऐसा लगता है कि xcode5 पर इंटरफ़ेस बिल्डर को cell.backgroundColor को क्लियर करने में परेशानी होती है।

वास्तव में मुझे जो कुछ करना था वह सेट करना था

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
// get the cell from the nib
//then force the backgroundColor
cell.backgroundColor = [UIColor clearColor]
return cell;
}

नियंत्रण पहुँच गैर शून्य समारोह के अंत में
ropo


2

स्विफ्ट 3

override func viewDidLoad() {
        super.viewDidLoad()
        tableView.backgroundColor = UIColor.clear
}

1
// Fix iOS 7 clear backgroundColor compatibility 
// I Think this two lines only are enough

cell.backgroundColor = [UIColor clearColor];
cell.selectedBackgroundView = [[UIView new] autorelease];

0

सेट

tableView.backgroundColor = [UIColor clearColor];

व्यूडीडलड में।

यदि यह काम नहीं कर रहा है, तो कोशिश करें:

tableView.backgroundView = nil;

0

स्विफ्ट 3 में

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "CustomCell", for: indexPath)
    cell.backgroundColor = .clear
    cell.backgroundView = UIView()
    cell.selectedBackgroundView = UIView()
    return cell
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.