2009-09-28 10 views
24

मुझे कुछ कस्टम रंग में तालिका दृश्य के डिफ़ॉल्ट नीले रंग का चयन बदलने की आवश्यकता है। क्या उसे करने का कोई तरीका है। मेरी मदद करेंतालिका दृश्य चयन का रंग बदलने की आवश्यकता

+12

मुझे लगता है कि यदि आप और अधिक विस्मयादिबोधक चिह्न जोड़ते हैं तो आपको बेहतर परिणाम मिलेंगे ... –

उत्तर

62

यह करने के लिए सबसे अच्छा तरीका है इस तरह है:

// Customize the appearance of table view cells. 
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    static NSString *CellIdentifier = @"myCellId"; 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
    if (cell == nil) { 
     cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; 
     UIView *v = [[[UIView alloc] init] autorelease]; 
     v.backgroundColor = [UIColor redColor]; 
     cell.selectedBackgroundView = v; 
    } 
    // Set up the cell... 
    cell.textLabel.text = @"foo"; 
    return cell; 
} 

आप के लिए प्रासंगिक हिस्सा cell.selectedBackgroundView = v; अनुदेश है। आप अपनी पसंद के किसी भी दृश्य के साथ यहां बहुत मूल दृश्य 'v' को प्रतिस्थापित कर सकते हैं।

+1

ज़ोरान, मैंने सत्यापित किया है कि यह दृष्टिकोण सादा तालिका दृश्यों के लिए काम करता है, हालांकि यह मेरे समूह वाले लोगों के लिए काम नहीं करता है। कोई कामकाज? या आप इसकी पुष्टि कर सकते हैं? –

+0

यह तालिका दृश्य प्रकार पर निर्भर नहीं है: मैंने अभी पाया है कि यह कुछ सादे तालिकाओं पर काम करता है और अन्य सादे तालिकाओं पर नहीं है। वे सभी कस्टम टेबल कोशिकाओं का उपयोग करें। –

+1

यह केवल सादा तालिका दृश्यों के लिए कोई फ़ज़ नहीं है। समूहबद्ध तालिका दृश्य के लिए आपको वास्तव में अलग-अलग चयनित पृष्ठभूमि के लिए 4 विचारों की आवश्यकता होगी; सबसे ऊपर, Bottommost, दो अन्य कोशिकाओं के बीच, और समूह में एकल सेल। फिर इन्हें अपडेट करने का दर्द आता है आप किसी सेगमेंट में पंक्तियों की संख्या बदलते हैं। IPhone OS 4.0 के लिए "चयनित बैकग्राउंड ग्रेडिएंट" संपत्ति जोड़ने के लिए bugreport.apple.com पर एक सुविधा अनुरोध पोस्ट करें। – PeyloW

3

मुझे नहीं लगता कि आप एक कस्टम रंग का उपयोग कर सकते हैं। हालांकि, अगर आप UITableViewCell

@property(nonatomic) UITableViewCellSelectionStyle selectionStyle 

चयन शैली एक backgroundView लगातार कि एक सेल के रंग निर्धारित करता है जब यह चुना जाता है के निम्नलिखित संपत्ति का उपयोग कर सकते हैं। डिफ़ॉल्ट मान UITableViewCellSelectionStyleBlue है। चूंकि

typedef enum { 
    UITableViewCellSelectionStyleNone, 
    UITableViewCellSelectionStyleBlue, 
    UITableViewCellSelectionStyleGray 
} UITableViewCellSelectionStyle; 

आप डिफ़ॉल्ट नीले रंग से भूरे रंग में स्विच कर सकते हैं, या बिल्कुल रंगीन चयन नहीं कर सकते हैं।

+1

यदि आप अपने UITableViewCell को उपclass करते हैं, तो आप किसी भी रंग में हाइलाइट कर सकते हैं। – mahboudz

+0

आईबी या प्रोग्रामेटिक रूप से डिज़ाइन किए गए कस्टम UITableViewCells के लिए आप यह कैसे करते हैं? मेरा मतलब है, क्या कोई विधि/संपत्ति है जो सेल के शीर्ष पर एक और दृश्य डालने जैसे चालों के आवर्ती के बिना ऐसा करने की अनुमति देती है? –

+0

क्या आप मुझे UITableViewCell को उपclass करने के लिए कोड भेज सकते हैं और इसे कस्टम रंग से हाइलाइट कर सकते हैं। कृपया .. – smakstr

0

ऐसा करने का एक और तरीका आपके सेल पर एक नया दृश्य, जो भी रंग आप चाहते हैं और 50% या उससे अधिक अस्पष्टता में स्थानांतरित करना होगा। जब आप एक -सेट चयन करते हैं तो आप इस दृश्य को सेल पर ले जाते हैं: एनिमेटेड: कॉल करें। जब मैं कदम कहता हूं, तो आप वास्तव में हमेशा अपने सेल के शीर्ष पर एक दृश्य देख सकते हैं, लेकिन छिपी हुई बिट को बंद करें और जिसकी आपको आवश्यकता है।

6

मैं भी इस समस्या से ग्रुप किए गए सेल के लिए कस्टम चयनित सेल दृश्य बनाने की कोशिश कर रहा था। मैंने इस समस्या को सेल टॉप, मध्य और नीचे के लिए 3 प्रकार की छवियां बनाकर हल किया है, यह मानते हुए कि एक मध्यम सेल होगा।

NSString *imageFile; 

if (row == 0) { 
imageFile = @"highlighted_cell_top.png"; 
} else if (row == ([registeredDetailsKeys count] - 1)) { 
imageFile = @"highlighted_cell_bottom.png"; 
} else { 
imageFile = @"highlighted_cell_middle.png"; 
} 

UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:imageFile]]; 

cell.selectedBackgroundView = imageView; 

संभवतः एक आसान तरीका है लेकिन मैं परिणाम से खुश हूं।

+0

जहाँ तक मुझे पता है, यह करने का बिल्कुल सही तरीका है। इसे देखें [ट्यूटोरियल] (http://cocoawithlove.com/2009/04/easy-custom-uitableview-drawing.html)। आप "top_bottom" भिन्नता भूल गए हैं (जब केवल एक ही सेल), यह सब कुछ है। – Rich

3

है कि आप शीर्ष लेख में की घोषणा के बाद

@property(nonatomic) UITableViewCellSelectionStyle selectionStyle 

लागू सुनिश्चित करें

cell.selectionStyle = UITableViewCellSelectionStyleGray 

जहां UITableViewCellSelectionStyleGrayUITableViewCellSelectionStyleNone, UITableViewCellSelectionStyleBlue, UITableViewCellSelectionStyleGray हो सकता है।

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