स्थिर कोशिकाओं के लिए UITableViewAutomaticDimension का उपयोग करने के बाद (जो 'सही विवरण सेल' हैं, इसलिए मैं सेल की ऊंचाई पर कोई बाधा नहीं डाल सकता)

कोशिकाओं की ऊंचाई छोटी हो गई। क्या इसको ठीक करने का कोई तरीका है? :(

अग्रिम में धन्यवाद!

मैं क्या उम्मीद कर रहा था (छवि)

यह कैसे दिखाता है (छवि)

कोड:

override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    return UITableViewAutomaticDimension
}

override func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
    return 65
}

override func viewWillAppear(_ animated: Bool) {
    tableView.estimatedRowHeight = 65
    tableView.rowHeight = UITableViewAutomaticDimension
}

संपादित करें:

ऐसा लग रहा था कि UITableViewAutomaticDimension का उपयोग करते समय constraints के बिना ऊंचाई बढ़ाने का कोई तरीका नहीं है, इसलिए मैंने मैन्युअल रूप से rowHeight सेट किया:

struct DeviceSize {
    static let iPhoneSE = (width:Float(320.0), height:Float(568.0))
    static let iPhone7 = (width: Float(375.0), height:Float(667.0))
    static let iPhone7P = (width: Float(414.0), height:Float(736.0))
}

override func tableView(_ tableView: UITableView,
               heightForRowAt indexPath: IndexPath) -> CGFloat {
    let height = Float(UIScreen.main.bounds.size.height)
    switch height {
    case DeviceSize.iPhoneSE.height:
        return 55
    case DeviceSize.iPhone7.height:
        return 60
    case DeviceSize.iPhone7P.height:
        return 65
    default:
        return 65
    }
}
0
Slowpoke 30 जून 2017, 13:35

2 जवाब

सबसे बढ़िया उत्तर

यदि आप स्वचालित आयाम का उपयोग करते हैं तो सेल ऊंचाई स्वचालित रूप से गणना की जाएगी। पंक्ति ऊंचाई मैन्युअल रूप से सेट करें।

इन पंक्तियों की आवश्यकता नहीं है

override func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
    return 65
}
override func viewWillAppear(_ animated: Bool) {
    tableView.estimatedRowHeight = 65
   tableView.rowHeight = UITableViewAutomaticDimension
}

समाधान :

    override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {

    if indexPath.row == 0{
    //.... return height whatever you want for indexPath.row
    return 40
    }else {
    return 30
    }
}
1
Raja S 30 जून 2017, 13:53

सेल के अंदर, लेबल को ऊंचाई की कमी Greater than or Equal के साथ न्यूनतम आवश्यक ऊंचाई पर सेट करें। AutomaticDimensions लेबल की टेक्स्ट सामग्री के आधार पर सेल की ऊंचाई बनाएं। बस लेबल को न्यूनतम ऊंचाई दें जैसे this

2
Amal T S 30 जून 2017, 13:40