2011-07-12 8 views
16

मेरा टेबल व्यू का पाद लेख एक ऐसा दृश्य है जो उपयोगकर्ता से कुछ ट्वीट दिखाता है, इसलिए मुझे ट्वीट्स मिलने तक इसकी ऊंचाई नहीं पता, मैंने एक FooterViewController बनाया है जिसमें एक विधि है refreshTweets, मैं इसे viewDidLoad में जोड़ें:UITableView: बदलते हुए फ़ूटर व्यू का आकार प्रोग्रामेटिक रूप से काम नहीं करता

FooterViewController *controller = [[FooterViewController alloc] initWithNibName...]; 
[[self tableView] setFooterView:[controller view]]; 
[controller refreshTweets]; 
refreshTweets विधि में

, मैं ट्वीट्स पढ़ सकते हैं और कुल ऊंचाई की गणना, और दृश्य (पाद) रीसेट की ऊंचाई:

self.view.frame = newFrame; 

लेकिन यदि ऐसा नहीं होता समझ में आता है, पाद लेख की ऊंचाई अभी भी इंटरफ़ेस में सेट ऊंचाई है बिल्डर, क्या ऐसा कुछ भी गायब है या ऐसा करने का कोई वैकल्पिक तरीका है?

धन्यवाद!

संपादित करें: मैं दृश्य के आकार को इंटरफ़ेस बिल्डर में काफी छोटा करने के लिए बदल सकता हूं, और इसे ट्वीट्स की ऊंचाई की गणना करने और view.frame को सेट करने के बाद बढ़ाया जाएगा, लेकिन तालिका दृश्य अभी भी सोचता है कि उसके पाद लेख की पिछली ऊंचाई है, है, अतिरिक्त जगह टेबलव्यू के बाहर है और यदि मैं टेबल को खींचता हूं तो मैं इसे देख सकता हूं।

उत्तर

39
myTable.tableFooterView = myFooterView; 

तालिका में अपने पाद लेख को फिर से असाइन करें। तालिका पहचान जाएगी कि इसमें एक नया पाद लेख है और जो भी लेआउट के उचित आकार के लिए लेआउट की आवश्यकता है उसे फिर से करें।

स्विफ्ट में: - -:

+1

tableHeaderView आकार बदलने के बारे में यह एक हो सकता है एक सहायक (और अधिक शब्द) लिंक ; tableFooterView के लिए पूरी तरह से काम करता है: http://davidjhinson.wordpress.com/2009/03/24/resizing-a-uitableviews-tableheaderview/ – weienw

0

आदेश पाद लेख दृश्य यहाँ के फ्रेम को बदलने के लिए सरल ट्वीक है

func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat { 
    return 0.5 
} 


func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? { 
    let footerView = UIView() 
    let footerChildView = UIView(frame: CGRect(x: 60, y: 0, width: tableView.frame.width - 60, height: 0.5)) 
    footerChildView.backgroundColor = UIColor.darkGray 
    footerView.addSubview(footerChildView) 
    return footerView 
} 
संबंधित मुद्दे