एक पंक्ति में दो बटन और एक लेबल को सही तरीके से कैसे जोड़ा जाए? - आईओएस, उद्देश्य-सी, यूजर इंटरफेस, यूबूटन

मेरे पास एक कस्टम TableViewCell है:

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

name तथा event दो बटन हैं बटनों का नाम कोड में गतिशील रूप से असाइन किया जाएगा:

[cell.newsEventName setTitle:event[@"name"] forState:UIControlStateNormal];
[cell.newsEventName setTitleColor:[UIColor colorWithRed:0.0 green:122.0/255.0 blue:1.0 alpha:1.0] forState:UIControlStateNormal];

कभी-कभी ये नाम बहुत लंबे होते हैं और कभी-कभी कम होते हैं। इससे बचने के लिए मैं उन्हें गतिशील रूप से एक पंक्ति में कैसे डाल सकता हूं:

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

यदि मैं डॉट्स से बचने के लिए बटन बहुत बड़ा खींचता हूं तो छोटे नामों के लिए मेरे पास बहुत खाली जगह शेष है। मैं इन शर्तों के साथ उन्हें अच्छी तरह से कैसे रख सकता हूं?

उत्तर:

उत्तर № 1 के लिए 1

क्या आप बाधाओं का उपयोग कर रहे हैं? लेबल जो बढ़ता / घटता है, उसके लिए आप प्राथमिकता को उच्च प्राथमिकता से जोड़ सकते हैं, और यह हमेशा बढ़ेगा।

यदि आप बाधाओं का उपयोग नहीं कर रहे हैं, तो आप इसे फिट करने के लिए आकार बना सकते हैं, या जब सेल इसे लेआउट करता है तो आकार को गतिशील रूप से फिर से करें


उत्तर № 2 के लिए 1

आप UIStackView का उपयोग कर सकते हैं।यह आपको बटन को गतिशील रूप से आकार देने की अनुमति देगा। हालांकि, यदि आप ऐसा करते हैं तो आप केवल आईओएस 9 के साथ संगत होंगे। आप एक स्टैकव्यू जोड़ सकते हैं जैसे कि आप इंटरफ़ेस बिल्डर में कोई अन्य तत्व जोड़ते हैं।


उत्तर № 3 के लिए 1

क्या आपने ऑटोलाउट की कोशिश की है।सेल में सबव्यूज़ की स्थिति को ठीक करने के लिए अपने कस्टम सेल में ऑटोलाउट का प्रयास करें। बटन की चौड़ाई को ठीक करने के बजाय सेल में अपनी स्थिति दें। आशा है इससे तुम्हारी समस्या का समाधान हो गया होगा। आप इस लिंक को देख सकते हैं http://www.raywenderlich.com/73602/dynamic-table-view-cell-height-auto-layout


जवाब के लिए 0 № 4

चलिए इसे 3 चरणों में तोड़ दें

  • ए: नाम के लिए आवश्यक आकार खोजें

    CGSize sizeMax = CGSizeMake(cell.frame.size.width, FLT_MAX);
    CGSize sizeExpected = [stringName sizeWithFont:buttonName.titleLabel.font
    constrainedToSize:maximumLabelSize
    lineBreakMode:NSLineBreakByWordWrapping];
    float buttonWidth = sizeExpected.width;
    
  • बी: बटन की चौड़ाई सेट करें (नाम के साथ)

    CGRect r1 = cell.newsEventName.frame;
    cell.newsEventName setFrame:CGRectMake(r1.origin.x, r1.origin.y, buttonWidth, r1.size.height);
    
  • सी: लेबल की चौड़ाई निर्धारित करें

    CGRect r2 = cell.newsEventLabel.frame;
    cell.newsEventLabel setFrame:CGRectMake(r1.origin.x+buttonWidth, r2.origin.y, r2.size.width, r2.size.height);
    

संबंधित सवाल
सबसे लोकप्रिय