2011-04-12 16 views
13

में CGRectMake मैं एक UITableViewCell के अंदर एक लेबल और एक टेक्स्ट फ़ील्ड बनाने के लिए CGRectMake का उपयोग कर रहा हूं। मेरी समझ मापदंडों क्या मैं सेल में देख तुरंत इसकी सही करने के लिए पाठ फ़ील्ड के साथ छोड़ दिया पर एक लेबल हैउद्देश्य-सी

CGRectMake(x, y, width, height) 

के रूप में परिभाषित कर रहे हैं

label = [[UILabel alloc] initWithFrame:CGRectMake(20, 10, 0, 20)]; 
    label.backgroundColor = [UIColor redColor];  

    textField = 
    [[UITextField alloc] initWithFrame:CGRectMake(0, 10, 0, 20)]; 
    textField.backgroundColor = [UIColor blueColor]; 

    [textField setDelegate:self]; // set the delegate to this object 
    [textField addTarget:self action:@selector(textFieldDidEndOnExit) 
     forControlEvents:UIControlEventEditingDidEndOnExit]; 

    [self.contentView addSubview:label]; // add label to the cell 
    [self.contentView addSubview:textField]; // add textField to cell 

पहले,: यहाँ कोड है। दोनों के बीच एक छोटी सी जगह है।

मैं उम्मीद करता हूं कि एक्स, वाई निर्देशांक सेल के ऊपरी बाईं ओर 0,0 बिंदु के सापेक्ष होने के साथ, सकारात्मक मूल्य नीचे और दाईं ओर जा रहे हैं।

मैं मैं क्या देख द्वारा उलझन में हूँ।

मुझे लगता है कि लेबल मेरे सेल के बाईं ओर स्थित है, लेकिन इसमें टेक्स्ट फ़ील्ड के एक्स मान से अधिक एक्स मान अधिक है। टेक्स्टफिल्ड लेबल के दाईं ओर शुरू होता है।

मुझे समझ में नहीं आता कि प्रत्येक के लिए चौड़ाई मान 0 (शून्य) पर क्यों सेट है।

इसके अलावा, सेलफिनेटर के सापेक्ष टेक्स्टफिल्ड लेबल के सापेक्ष स्थिति को लेता है।

0,0--------------------------------------------------------------------------------- 
|                     | 
| ---------------- ----------------------------------------------------------------- 
| |    | |  
| | label   | | textField 
| |    | |  
| ---------------- ----------------------------------------------------------------- 
|                     | 
------------------------------------------------------------------------------------ 

मैं भी कि चौड़ाई नोटिस:

यहाँ सेल और क्या मैं इसे में देखते हैं (पृष्ठभूमि रंग सेट के साथ, मैं स्पष्ट रूप से देख सकते हैं, जहां CGRects रखा जा रहा है) का एक सरल स्केच है प्रत्येक लेबल की सामग्री की लंबाई के अनुसार भिन्न होता है। मुझे यह समझ है, लेकिन मुझे समझ नहीं आता क्यों textfield चारों ओर घूमती है, प्रत्येक मामले में लेबल से समान दूरी रह।

[संपादित करें] वैसे, "स्वयं" UITableViewCell का उप-वर्ग है, अगर मैंने यह स्पष्ट नहीं किया है।

+0

मुझे लगता है कि तुम्हारा मतलब 'टार पट्टी के नीचे है [cell.contentView addSubview: लेबल];' बजाय ऐसा नहीं है। – Robin

+0

आप क्यों कह रहे आप समझ में नहीं आता क्यों प्रत्येक के लिए चौड़ाई 0 पर सेट है जब आप एक है जो 0 करने के लिए दोनों विस्तृत सेट कर रहे हैं? इसे गैर-शून्य मान और अद्यतन पर सेट करने का प्रयास करें। –

उत्तर

12

enter image description here

+1

मुझे लगता है कि अब आप टेबलव्यू – Aravindhan

+0

की अवधारणा को समझ सकते हैं प्रश्न यह प्रश्न तालिका के बारे में नहीं है। प्रश्न CGRectMake के व्यवहार के बारे में है। मेरे उदाहरण एक UITableViewCell के लिए बात कर रहा है, लेकिन मुझे लगता है कि शायद अप्रासंगिक है। मुख्य प्रश्न हैं कि क्यों चौड़ाई शून्य पर सेट है (यह क्या करना चाहिए)? और बाईं ओर वाले लेबल की स्थिति क्यों है जब इसका x मान टेक्स्ट फ़ील्ड के x मान से अधिक है? – Jim

+0

आप चौड़ाई को 0 क्यों सेट करते हैं? यदि आप इसे 0 पर सेट करते हैं तो उत्तर इस तरह नहीं आएगा। बस एक लाइन आ जाएगी। – Aravindhan

0

एक तालिका के लेबल देख सकते हैं और बक्सें नेविगेशन पट्टी के नीचे मुद्रित करें। टैब बार के नीचे अधिक स्पष्ट रूप से यह केवल एक्स और वाई मानों को couting शुरू होता है। कि यह बताते हैं (0,0)

+0

मुझे यकीन नहीं है कि आपका क्या मतलब है। मेरे उदाहरण में वर्णित कोई टैब बार नहीं है। (टैब बार, बाकी सब नीचे, स्क्रीन के नीचे हो सकता है अगर वहाँ एक था।) आज़माने के लिए धन्यवाद। – Jim

+0

क्षमा करें कि नेविगेशन बार है ... – Aravindhan