यूआईटेबल व्यू सेल (स्विफ्ट) के लिए डायनामिक हाइट इश्यू


79

चर लंबाई के डायनामिक टेक्स्ट को टेबलव्यू सेल लेबल में इंजेक्ट किया जा रहा है। टेबलव्यू कोशिकाओं की ऊंचाइयों को गतिशील रूप से आकार देने के लिए, मैंने इसमें लागू किया है viewDidLoad():

self.tableView.estimatedRowHeight = 88.0
self.tableView.rowHeight = UITableViewAutomaticDimension

यह उन कोशिकाओं के लिए अच्छी तरह से काम करता है जिन्हें अभी तक स्क्रॉल किया जाना है (जैसा UITableViewAutomaticDimentionकि सेल पर स्क्रॉल करने के लिए कहा जाता है), लेकिन उन कोशिकाओं के लिए नहीं जो शुरू में डेटा के साथ टेबल लोड करने पर ऑनस्क्रीन प्रदान की जाती हैं।

मैंने केवल डेटा को पुनः लोड करने की कोशिश की है (जैसा कि कई अन्य संसाधनों में सुझाव दिया गया है):

self.tableView.reloadData()

दोनों में viewDidAppear()और viewWillAppear()यह कोई फायदा नहीं हुआ। मैं खो गया हूँ .. क्या किसी को पता है कि xcode ने स्क्रीन पर शुरू में लोड की गई कोशिकाओं के लिए गतिशील ऊंचाई कैसे प्रदान की है?

कृपया मुझे बताएं, अगर कोई बेहतर वैकल्पिक तरीका है।


क्या सेल के लिए आपकी ऊँचाई की बाधाएँ सही हैं, मैंने Xcode 6.3 संस्करण का उपयोग करके जंगली में इसके साथ कोई समस्या नहीं देखी है। यहां तक ​​कि इस काम के साथ जीथब पर एक नमूना परियोजना है। github.com/darren102/DTFAutomaticCellHeight
darren102

1
मैंने लेबल की संभावित ऊँचाई को बढ़ाकर इस समस्या को हल किया। कृपया मेरा जवाब नीचे देखें। भले ही, अगर आपके पास एक बेहतर समाधान है, तो कृपया मुझे बताएं!
सरलता

जवाबों:


115

इसे इस्तेमाल करे:

func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    return UITableViewAutomaticDimension
}

संपादित करें

func tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    return UITableViewAutomaticDimension
}

स्विफ्ट 4

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

स्विफ्ट 4.2

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

दोनों तरीकों से ऊपर परिभाषित करें।
यह समस्या को हल करता है।

पुनश्च: इसके लिए काम करने के लिए ऊपर और नीचे की बाधाओं की आवश्यकता होती है।

यहाँ उदाहरण है


3
@ बशन यह पूरी तरह से काम करता है। सुनिश्चित करें कि आपने उचित अड़चनें दी हैं।
iDhaval

2
काम नहीं करता है। लगता है कि एक बग यदि एक शब्द अभी बहुत लंबा है, लेकिन लंबे समय तक पर्याप्त नहीं है, तो यह ठीक से प्रदान नहीं होता है। यदि यह कुछ शब्द है तो इसका ठीक से काम करना प्रतीत होता है।
Jeeves से

6
यह मेरे लिए तब तक काम नहीं आया जब तक मैंने एक नीचे की बाधा नहीं जोड़ी। मुझे लगता है कि यह आपके जवाब में ध्यान देने योग्य है कि काम करने के लिए ऊपर और नीचे की बाधाओं को निर्धारित किया जाना चाहिए।
मिच डाउनी

2
इसके लिए काम करने के लिए नीचे और ऊपर कंट्रास्ट की आवश्यकता होती है।
एंटनी ओसेफ

2
"सेल तत्वों" के लिए नीचे और ऊपर की बाधाओं को काम करने के लिए आवश्यक है
EnasAZ

37

इसे इस्तेमाल करो:

tableView.rowHeight = UITableViewAutomaticDimension
tableView.estimatedRowHeight = 300

और उपयोग न करें: heightForRowAtIndexPathप्रतिनिधि कार्य करें

इसके अलावा, स्टोरीबोर्ड में उस लेबल की ऊंचाई निर्धारित न करें जिसमें बड़ी मात्रा में डेटा हो। इसे top, bottom, leading, trailingअड़चन दें ।


4
नीचे-बाधा महत्वपूर्ण है! मैंने उसे याद किया और सोचा कि ऊंचाई की गणना क्यों नहीं की जा सकती।
कोयेर

मैं इसे पीछे छोड़ रहा थाheightForRowAtIndexPath
500 सर्वर त्रुटि

@ मुझे लगा कि आप इसे स्टैटिक सेल या डायनामिक सेल की तरह कहीं भी इस्तेमाल कर सकते हैं ..
ami rt

16

स्विफ्ट 3

tableView.rowHeight = UITableViewAutomaticDimension
tableView.estimatedRowHeight = 160

तथा!!! StoryBoard में: आपने अपने लेबल के लिए TOP और BOTTOM बाधाओं को निर्धारित किया है। और कुछ नहीं।


11

इस अजीब बग को इंटरफ़ेस बिल्डर मापदंडों के माध्यम से हल किया गया था क्योंकि अन्य उत्तर समस्या का समाधान नहीं करते थे।

मैंने जो कुछ किया, वह डिफ़ॉल्ट लेबल आकार को उस सामग्री से बड़ा बना सकता था जो संभावित रूप से हो सकती है और यह estimatedRowHeightऊंचाई में भी परिलक्षित होती है। पहले, मैंने इंटरफ़ेस बिल्डर में डिफ़ॉल्ट पंक्ति की ऊँचाई सेट की 88pxऔर इसे अपने नियंत्रक में इस तरह प्रतिबिंबित किया viewDidLoad():

self.tableView.rowHeight = UITableViewAutomaticDimension
self.tableView.estimatedRowHeight = 88.0

लेकिन वह काम नहीं किया। इसलिए मैंने महसूस किया कि सामग्री शायद कभी भी बड़ी नहीं होगी 100px, इसलिए मैंने डिफ़ॉल्ट सेल की ऊँचाई 108px(संभावित सामग्री से बड़ी) निर्धारित की और इसे नियंत्रक में ऐसा दर्शाया viewDidLoad():

self.tableView.rowHeight = UITableViewAutomaticDimension
self.tableView.estimatedRowHeight = 108.0

यह वास्तव में कोड को प्रारंभिक लेबल को सही आकार में सिकोड़ने की अनुमति देता है । दूसरे शब्दों में, इसका विस्तार कभी बड़े आकार में नहीं हुआ, लेकिन हमेशा नीचे की ओर सिकुड़ सकता है ... इसके अलावा, अतिरिक्त self.tableView.reloadData()की आवश्यकता नहीं थीviewWillAppear()

मुझे पता है कि यह उच्च चर सामग्री आकारों को कवर नहीं करता है, लेकिन इसने मेरी स्थिति में काम किया जहां सामग्री की अधिकतम संभव वर्ण गणना थी।

यकीन नहीं होता कि यह स्विफ्ट या इंटरफेस बिल्डर में बग है, लेकिन यह एक आकर्षण की तरह काम करता है। कोशिश करो!


मुझे भी यही समस्या है। मैंने अपना उत्तर अपडेट कर दिया है। इसने मेरी समस्या हल कर दी। केवल इस विधि को परिभाषित करें और ऊंचाई से संबंधित सभी सामान हटा दें।
शाम

8

पंक्ति ऊंचाई और अनुमानित पंक्ति ऊंचाई के लिए स्वचालित आयाम सेट करें और निम्नलिखित चरणों को सुनिश्चित करें:

@IBOutlet weak var table: UITableView!

override func viewDidLoad() {
    super.viewDidLoad()

    // Set automatic dimensions for row height
    // Swift 4.2 onwards
    table.rowHeight = UITableView.automaticDimension
    table.estimatedRowHeight = UITableView.automaticDimension


    // Swift 4.1 and below
    table.rowHeight = UITableViewAutomaticDimension
    table.estimatedRowHeight = UITableViewAutomaticDimension

}



// UITableViewAutomaticDimension calculates height of label contents/text
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    // Swift 4.2 onwards
    return UITableView.automaticDimension

    // Swift 4.1 and below
    return UITableViewAutomaticDimension
}

उदाहरण के लिए: यदि आपके पास अपने UITableviewCell में एक लेबल है, तो

  • पंक्तियों की संख्या = 0 (और पंक्ति विराम मोड = छोटी पूंछ)
  • अपने पर्यवेक्षक / सेल कंटेनर के संबंध में सभी बाधाओं (ऊपर, नीचे, दाएं बाएं) को सेट करें।
  • वैकल्पिक : लेबल के लिए न्यूनतम ऊंचाई सेट करें, यदि आप लेबल द्वारा कवर किया गया न्यूनतम ऊर्ध्वाधर क्षेत्र चाहते हैं, भले ही कोई डेटा न हो।

यहाँ गतिशील ऊंचाई की कमी के साथ नमूना लेबल है।

यहाँ छवि विवरण दर्ज करें


1
क्रुनाल द्वारा उल्लिखित ViewDidLoad () में प्रविष्टि मेरे लिए समाधान थी।
SHS

7

यूआईटेबल व्यू की डायनामिक साइजिंग सेल को 2 चीजों की आवश्यकता थी

  1. टेबल व्यू सेल के अंदर अपने विचार के सही अवरोध को सेट करना (अधिकतर इसमें आपका विचार उचित शीर्ष, नीचे और ट्रालिंग बाधाएं देना शामिल है)
  2. दृश्य में तालिका दृश्य के इन गुणों को कॉल करना

     tableView.rowHeight = UITableViewAutomaticDimension
    
     tableView.estimatedRowHeight = 140
    

यह स्विफ्ट 3 में लिखे सेल्फ-साइजिंग (डायनेमिक टेबल व्यू सेल्स) पर एक अद्भुत ट्यूटोरियल है।


6

स्विफ्ट 3 के लिए आप निम्नलिखित का उपयोग कर सकते हैं:

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

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

3

स्विफ्ट के लिए 4.2

@IBOutlet weak var tableVw: UITableView!

override func viewDidLoad() {
    super.viewDidLoad()

    // Set self as tableView delegate
    tableVw.delegate = self

    tableVw.rowHeight = UITableView.automaticDimension
    tableVw.estimatedRowHeight = UITableView.automaticDimension
}

// UITableViewDelegate Method 
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {

    return UITableView.automaticDimension
}

हैप्पी कोडिंग :)


2

प्रयत्न

override func viewWillAppear(animated: Bool) {
    self.tableView.layoutSubviews()
}

मुझे भी यही समस्या थी और यह मेरे लिए काम करता है।


मैं इसे आजमाता हूँ और आपको बताता हूँ कि क्या होता है। सलाह के लिये धन्यवाद! पूछने के लगभग एक साल बाद, मुझे अपने अलावा कोई और जवाब नहीं मिला! आशा है कि आपके काम करता है!
सरलता

सुपरआउट्सविलेयर (एनिमेटेड) कॉल करने से पहले यह सुनिश्चित कर लें कि आप लेआउटआउट्स का साक्षात्कार करें
एलन स्कार्पा

2

काम करने के लिए UITableViewCell का ऑटोरेस्पिरिंग करना सुनिश्चित करें कि आप ये बदलाव कर रहे हैं:

  • स्टोरीबोर्ड में आपके UITableView में केवल डायनामिक प्रोटोटाइप सेल होना चाहिए (इसे स्थैतिक कोशिकाओं का उपयोग नहीं करना चाहिए) अन्यथा ऑटोरेसेज़ काम नहीं करेगा।
  • स्टोरीबोर्ड में आपके UITableViewCell के UILabel ने उन सभी 4 बाधाओं के लिए कॉन्फ़िगर किया है जो ऊपर, नीचे, अग्रणी और पीछे आने वाली बाधाएँ हैं।
  • स्टोरीबोर्ड में आपके UITableViewCell के यूआईलैब की लाइनों की संख्या 0 होनी चाहिए
  • आपके UIViewController के दृश्य में UITableView गुण के नीचे सेट किया गया फ़ंक्शन:

    self.tableView.estimatedRowHeight = <minimum cell height> 
    self.tableView.rowHeight = UITableViewAutomaticDimension
    

स्थैतिक कोशिकाओं का उपयोग करके समान कैसे लागू किया जाए?
जावेद

यहां दिए गए सभी समाधानों की कोशिश करने के बाद, केवल इस एक (के <minimum cell height>लिए सेटिंग estimatedRowHeight) ने वास्तव में मेरी समस्या को ठीक कर दिया। इससे पहले, सेल ने ऑटोरेस्ज़ाइज किया था, लेकिन मुझे विभिन्न बाधाएं भी मिल रही थीं। अब मैं नहीं! तो, बहुत बहुत धन्यवाद, अंशुल !!
राबर्टआरएम

2

स्विफ्ट के लिए मैंने आईओएस 9.0 और आईओएस 11 में भी यह जवाब दिया (एक्सकोड 9.3)

func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    return UITableViewAutomaticDimension
}

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

यहां आपको ऊपर, नीचे, दाएं और बाएं बाधाओं को जोड़ने की आवश्यकता है


2

मेरे मामले में - स्टोरीबोर्ड में नीचे की छवि के रूप में दो लेबल थे, दोनों लेबल वांछित चौड़ाई मान सेट कर रहे थे इससे पहले कि मैंने इसे बराबर किया। एक बार जब आप अचयनित हो जाते हैं, तो यह स्वचालित में बदल जाएगा, और हमेशा की तरह नीचे की चीजों को आकर्षण की तरह काम करना चाहिए।

1.rowHeight = UITableView.automaticDimension, and
2.estimatedRowHeight = 100(In my case).
3.make sure label number of lines is zero.

यहाँ छवि विवरण दर्ज करें


2

दूसरों ने जो कहा है, उसके अलावा,

सुपरबेल देखने के लिए अपने श्रम का परिणाम प्राप्त करें!

इसलिए अपने लेबल की बाधाओं को अपने आस-पास की अन्य चीजों के सापेक्ष रखने के बजाय, इसे टेबल व्यू सेल की सामग्री के दृश्य के लिए विवश करें।

फिर, सुनिश्चित करें कि आपके लेबल की ऊँचाई 0 से अधिक या बराबर है, और लाइनों की संख्या 0 पर सेट है।

फिर ViewDidLoadजोड़ें:

tableView.estimatedRowHeight = 695

tableView.rowHeight = UITableViewAutomaticDimension

सुपरबेल देखने के लिए अपने श्रम का लाभ प्राप्त करें! धन्यवाद।
ACAkgul

2

2 चीजें करते समय यह सरल है:

  1. स्वचालित ऊंचाई सेट करना
tableView.rowHeight = UITableView.automaticDimension
  1. ऊपर से नीचे तक पूर्ण बाधाओं के साथ सभी TableViewCells बनाना । अंतिम तत्व सेल खत्म करने के लिए कुछ नीचे रिक्ति को परिभाषित करना चाहिए

इसलिए लेआउट इंजन सेल की गणना कर सकता है और मूल्य को सही ढंग से लागू कर सकता है।


1

मैं सिर्फ आपके समाधान से प्रेरित था और एक और तरीका आजमाया।

कृपया जोड़ने tableView.reloadData()का प्रयास करें viewDidAppear()

यह मेरे लिए काम करता है।

मुझे लगता है कि स्क्रॉल करने के पीछे की चीजें रीलोडाटा के रूप में "समान" हैं। आप स्क्रीन स्क्रॉल है, यह बुला की तरह है reloadData()जब viewDidAppear

यदि यह काम करता है, तो plz इस उत्तर का उत्तर दें ताकि मैं इस समाधान के बारे में सुनिश्चित हो सकूं।


मैं यह देखने की कोशिश करूंगा कि यह वही समाधान बनाता है या नहीं। धन्यवाद!
सादगी

क्षमा करें कंग, विचित्र रूप से इसका लेआउट पर कोई प्रभाव नहीं था। इसने उन्हें स्थिर मूल्य के रूप में छोड़ दिया जो उन्हें उचित आकार में लपेटने के बजाय इंटरफ़ेस बिल्डर में सेट किया गया था।
सादगी

1

दुर्भाग्य से, मुझे यकीन नहीं है कि मैं क्या याद कर रहा था। उपरोक्त विधियाँ मेरे लिए xib सेल की ऊँचाई पाने के लिए काम नहीं करती हैं या ऊँचाई की गणना करने के लिए लेआउटफिनिडेड () या UITableView.automaticDimension को करने देती हैं। मैं 3 से 4 रातों से खोज रहा हूं और कोशिश कर रहा हूं लेकिन जवाब नहीं मिल रहा है। यहाँ या किसी अन्य पोस्ट पर कुछ जवाब ने मुझे वर्कअराउंड के लिए संकेत दिए थे। यह एक बेवकूफ विधि है, लेकिन यह काम करता है। बस एक सरणी में अपने सभी कोशिकाओं को जोड़ने। और फिर अपनी प्रत्येक ऊंचाई के आउटलेट को xib स्टोरीबोर्ड में सेट करें। अंत में, उन्हें heightForRowAt विधि में जोड़ें। यदि आप उन API से परिचित नहीं हैं तो यह सीधे आगे है।

स्विफ्ट 4.2

CustomCell.Swift

@IBOutlet weak var textViewOneHeight: NSLayoutConstraint!
@IBOutlet weak var textViewTwoHeight: NSLayoutConstraint!
@IBOutlet weak var textViewThreeHeight: NSLayoutConstraint!

@IBOutlet weak var textViewFourHeight: NSLayoutConstraint!
@IBOutlet weak var textViewFiveHeight: NSLayoutConstraint!

MyTableViewVC.Swift

.
.
var myCustomCells:[CustomCell] = []
.
.
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = Bundle.main.loadNibNamed("CustomCell", owner: self, options: nil)?.first as! CustomCell

.
.
myCustomCells.append(cell)
return cell

}


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

   let totalHeight = myCustomCells[indexPath.row].textViewOneHeight.constant + myCustomCells[indexPath.row].textViewTwoHeight.constant +  myCustomCells[indexPath.row].textViewThreeHeight.constant + myCustomCells[indexPath.row].textViewFourHeight.constant + myCustomCells[indexPath.row].textViewFiveHeight.constant

  return totalHeight + 40 //some magic number


}

1

मैं इनका उपयोग करता हूं

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

    return 100
}

0

आपको बस सेल व्यू / व्यू पर प्रत्येक ऑब्जेक्ट के लिए TOP , BOTTOM और HEIGHT के लिए सभी बाधाओं को निर्धारित करना चाहिए और यदि है तो मध्य Y स्थिति को हटा दें । क्योंकि जहां आपने यह नहीं किया, कलाकृतियों को दूसरे विचारों पर रखता है।


3
हाय !, यह उत्तर अच्छा हो सकता है, लेकिन एक बेहतर उदाहरण प्रदान करना बेहतर है, जो आपके उत्तर की व्याख्या और प्रदर्शन करता है।
इटमारजी 3

0

उद्देश्य सी के लिए यह मेरे अच्छे समाधान में से एक है। यह मेरे लिए काम किया है।

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    cell.textLabel.text = [_nameArray objectAtIndex:indexPath.row];
    cell.textLabel.numberOfLines = 0;
    cell.textLabel.lineBreakMode = NSLineBreakByWordWrapping;
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    return UITableViewAutomaticDimension;
}

हमें इन 2 परिवर्तनों को लागू करने की आवश्यकता है।

1)cell.textLabel.numberOfLines = 0;
  cell.textLabel.lineBreakMode = NSLineBreakByWordWrapping;

2)return UITableViewAutomaticDimension;

0

मुझे यह मुद्दा भी शुरू में मिला था, मैंने इस मुद्दे self.tableView.reloadData()को डायनेमिक ऊंचाई के लिए इस कोड के बजाय इसके उपयोग से बचने के प्रयास से हल कर लिया था

[self.tableView reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationFade];

0

स्थैतिक का उपयोग करते समय UITableView, मैंने सभी मानों को UILabels में सेट किया और फिर कॉल किया tableView.reloadData()


0
self.tableView.rowHeight = UITableViewAutomaticDimension
self.tableView.estimatedRowHeight = 88.0

और लेबल के लिए बोतलबंद बाधाओं को जोड़ना न भूलें


0

स्विफ्ट 5 आनंद लें

tablev.rowHeight = 100
tablev.estimatedRowHeight = UITableView.automaticDimension


func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = self.tablev.dequeueReusableCell(withIdentifier: "ConferenceRoomsCell") as! ConferenceRoomsCell
    cell.lblRoomName.numberOfLines = 0
    cell.lblRoomName.lineBreakMode = .byWordWrapping
    cell.lblRoomName.text = arrNameOfRooms[indexPath.row]
    cell.lblRoomName.sizeToFit()
    return cell
}

-1
self.Itemtableview.estimatedRowHeight = 0;
self.Itemtableview.estimatedSectionHeaderHeight = 0;
self.Itemtableview.estimatedSectionFooterHeight = 0;


[ self.Itemtableview reloadData];
self.Itemtableview.frame = CGRectMake( self.Itemtableview.frame.origin.x,  self.Itemtableview.frame.origin.y,  self.Itemtableview.frame.size.width,self.Itemtableview.contentSize.height + self.Itemtableview.contentInset.bottom + self.Itemtableview.contentInset.top);

हालांकि यह कोड प्रश्न को हल कर सकता है, जिसमें यह भी बताया गया है कि यह समस्या कैसे और क्यों हल करती है, इससे वास्तव में आपके पोस्ट की गुणवत्ता को बेहतर बनाने में मदद मिलेगी, और संभवत: अधिक वोटों का परिणाम होगा। याद रखें कि आप भविष्य में पाठकों के लिए सवाल का जवाब दे रहे हैं, न कि केवल उस व्यक्ति से जो अब पूछ रहा है। कृपया स्पष्टीकरण जोड़ने के लिए अपने उत्तर को संपादित करें और संकेत दें कि क्या सीमाएँ और मान्यताएँ लागू होती हैं।
सूरज राव

-3

उचित बाधा निर्धारित करें और प्रतिनिधि विधियों को निम्नानुसार अपडेट करें:

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

यह डायनेमिक सेल ऊँचाई समस्या को हल करेगा। यदि आपको बाधाओं की जाँच करने की आवश्यकता नहीं है।


1
इसी पेज पर अहमद लॉट्फी के जवाब के रूप में एक ही कोड ...
एरिक आया


1
आपको कार्य के लिए अनुमानित पंक्ति की ऊंचाई और साथ ही कोड प्रदान करना होगा
मोहसिन शकीबा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.