2009-08-23 15 views
7

मेरे ऐप में, मैं टेबलव्यू की ऊंचाई को आकार बदलना चाहता हूं जब यह संपादन मोड बनाम नहीं है (तालिका दृश्य के नीचे संपादन नियंत्रण के लिए जगह बनाने के लिए)मैं UITableView की गति को गतिशील रूप से कैसे बदलूं?

यह कैसे किया जाना चाहिए?

उत्तर

2

आप तालिका दृश्य प्रतिनिधि tableView:willBeginEditingRowAtIndexPath: और tableView:didEndEditingRowAtIndexPath: को लागू करने के लिए क्रमशः एक पंक्ति (और इस प्रकार तालिका) संपादन मोड के अंदर और बाहर जाने के लिए लागू कर सकते हैं।

वहां से, आप तालिका दृश्य की वैकल्पिक रूप से frame.size.height संपत्ति (वैकल्पिक रूप से UIView एनिमेशन ब्लॉक के अंदर) के मूल्य को ट्विक कर सकते हैं। यदि आप पूरक पूरक विधियों के भीतर किसी भी कॉल प्राप्त करने से पहले प्रतिनिधि विधि में एकाधिक कॉल प्राप्त करते हैं, तो प्रतिनिधि विधियों के अंदर पूरी तरह से तालिका दृश्य की editing संपत्ति की जांच करना उपयोगी हो सकता है।

और जानकारी:

  • UITableView: editing संपत्ति
  • UITableViewDelegate: tableView:willBeginEditingRowAtIndexPath: विधि (didEndEditing इस दस्तावेज़ में भी है)
5

आप tableview की सीमा निर्धारित करने की आवश्यकता:

CGRect tvbounds = [tableView bounds]; 
[tableView setBounds:CGRectMake(tvbounds.origin.x, 
           tvbounds.origin.y, 
           tvbounds.size.width, 
           tvbounds.size.height + 20)]; 
13

मैंने पाया कि "सीमाएं" संपत्ति में हेरफेर करने से कुछ अप्रत्याशित व्यवहार हो सकते हैं जब आपके पास किसी अन्य दृश्य के अंदर एक फ़्लोटिंग टेबल हो। कभी-कभी ऊंचाई बढ़ने पर तालिका ऊपर की ओर बढ़ती है, भले ही मूल अभी भी 0,0 है।

"फ्रेम" संपत्ति और अधिक प्रभावी हो सकता है:

CGRect tvframe = [tableView frame]; 
[tableView setFrame:CGRectMake(tvframe.origin.x, 
           tvframe.origin.y, 
           tvframe.size.width, 
           tvframe.size.height + 20)]; 
संबंधित मुद्दे