2008-12-05 19 views
7

को कवर करने के लिए मुझे अपनी तालिका पंक्तियों में से एक बटन होना चाहिए जो मेरे UITableView की पूरी पंक्ति लेता है। मुझे लगता है कि इसके बारे में जाने का सबसे अच्छा तरीका UIButton को तुरंत चालू करना है, और इसे UITableViewCell के उदाहरण के रूप में एक ही फ्रेम आकार दें, और इसे सेल में एक सबव्यूव के रूप में जोड़ें। मैं लगभग वहां हूं, लेकिन कुछ पिक्सल बंद करने के लिए यह सही स्पर्श नहीं है। क्या इसके लिए कोई बेहतर दृष्टिकोण है, या शायद सही प्लेसमेंट सटीकता प्राप्त करने के लिए मेरे प्लेसमेंट सटीकता को ठीक किया जा सकता है?UIButton को UITableViewCell

cell = [tv dequeueReusableCellWithIdentifier:CellIdentifier]; 
if(cell == nil) { 
    cell = [self tableviewCellWithReuseIdentifier:CellIdentifier]; 
} 
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
[button setFrame:CGRectMake(0.0f, 5.0f, 320.0f, 44.0f)]; 

[button setTitle:@"Do Stuff" forState:UIControlStateNormal]; 
[button addTarget:self action:@selector(doStuff:) forControlEvents:UIControlEventTouchUpInside]; 
[cell addSubview:button]; 
+0

क्या आप भविष्य में अपने प्रश्नों से अप्रचलित टैग "objectivec" छोड़ सकते हैं? इसके अलावा, "कोको" आईफोन सवालों के लिए वास्तव में उपयुक्त नहीं है। धन्यवाद! –

उत्तर

13

आप कर सकते हैं नकली अपने didSelectRowAtIndexPath में यह: विधि। तालिका के रूप में तालिका देखें सेल कार्य करें।

[[[self tableView] cellForRowAtIndexPath:indexPath] setSelected:YES animated:YES]; 
[self doStuff]; 
[[[self tableView] cellForRowAtIndexPath:indexPath] setSelected:NO animated:YES]; 

नकली बटन बटन पर setSelected: animated: का उपयोग करें और इसे फीका करें। आपके लिए चाल कर सकता है।

+1

मुझे यह विचार पसंद है। समूहीकृत टेबलव्यू के साथ बढ़िया काम करता है। –

+0

जब आप दबाते हैं और "फ्लैश" होने पर थोड़ी देर हो जाती है ... – zakdances

0

यह बिंदु के बगल में हो सकता है, लेकिन आपके कोड में समस्या हो सकती है जहां सेल का पुन: उपयोग होने पर हर बार सेल में एक और बटन जोड़ा जाता है।

0

मुझे आपके जैसी ही समस्या थी। और रयान ने आपको जवाब दिया: सेल को स्वयं के साथ एक बटन के रूप में इस्तेमाल किया गया है ReAtIndexPath: विधि।

0

सेल को एक बटन होने के लिए आप अपने UITableViewCell में UIImage जोड़ सकते हैं।

0

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

0

एफडब्ल्यूआईडब्ल्यू, मैंने अपने ऐप में बटन को सीजीआरईटीमेक (9, 0, 302, 45) पर रखा और मुझे लगता है कि यह सही दिखता है।

3

कक्षा (UITableViewCell) में सामग्री देखें संपत्ति देखें। तो मैंने UITableViewCell चर के सामग्री दृश्य में मूल बटन डाला।

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    ・・・ 
    UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
    btn.frame = CGRectMake(230.0f, 4.0f, 60.0f, 36.0f); 
    [btn setTitle:@"OK" forState:UIControlStateNormal]; 
    [btn setTitle:@"OK" forState:UIControlStateSelected]; 
    [btn addTarget:self action:@selector(onClickRename:) forControlEvents:UIControlEventTouchUpInside]; 
    [cell.contentView addSubview:btn]; 
    ・・・ 
    return cell; 
} 

क्षमा करें, मेरी अंग्रेजी खराब है।

0
UIButton *btnView = [[UIButton alloc] init]; 
btnView.frame = CGRectMake(52.0f, 2.0f, 215.0f, 38.0f); 
[btnView setImage:[UIImage imageNamed:@"invite.png"] forState:UIControlStateNormal]; 
[btnView addTarget:self action:@selector(showInviteByMail) forControlEvents:UIControlEventTouchUpInside]; 
[cell.contentView addSubview:btnView]; 
[btnView release]; 
3

यदि आप इसे पूरी तरह फिट करना चाहते हैं, तो बस सेल की सीमाओं को अपने सीजीआरईटी के रूप में कॉल करें। इसे इस तरह करें:

button.frame = cell.bounds; 

यह आपके बटन को आपके सेल के समान ही होना चाहिए। उम्मीद है की वो मदद करदे!

कॉर्ड