2017-04-02 6 views
5

कस्टम में दिखाई नहीं दे UILabel मैं एक कस्टम UITableViewCellCCLineupTableViewCell कहा जाता है कि इस तरह दिखता है:स्विफ्ट 3: UITableViewCell

@IBOutlet weak var artistNameLabel: UILabel! 
@IBOutlet weak var artistValuationLabel: UILabel! 

override func awakeFromNib() { 
    super.awakeFromNib() 
    // Initialization code 

} 

override func setSelected(_ selected: Bool, animated: Bool) { 
    super.setSelected(selected, animated: animated) 

    // Configure the view for the selected state 
} 

मैं बहुत तरह cellForRowAt indexPath: IndexPath विधि में सेल का उपयोग:

let cell = tableView.dequeueReusableCell(withIdentifier: "HomeCell", for: indexPath) as! CCLineupTableViewCell 

मेरे कस्टम सेल सेटअप ऐसा है:

enter image description here

enter image description here

जैसा कि आप इसे आईबी और कोड में सही सेटअप देख सकते हैं। अजीब चीज यह है कि पहला लेबल, artistNameLabel, cellForRowAt indexPath: IndexPath के माध्यम से सुलभ है और पूरी तरह से काम करता है। artistValuationLabel, हालांकि, स्टोरीबोर्ड के माध्यम से डिफ़ॉल्ट पाठ होने के बावजूद कभी भी दिखाई नहीं देता है।

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

मैं निब से बाधाओं की एक तस्वीर जोड़ दिया है। यह सेल के दाएं तरफ, ऊपर और नीचे (साथ ही पहलू अनुपात) के लिए लंगर है।

enter image description here

+1

क्या आपने 'UITableViewCell'constraints की जांच की थी, शायद लेबल दिखाई नहीं दे रहा है क्योंकि त्रुटि बाधाएं। –

+0

@ Santiagocarmonagonzález बाधाएं अच्छी हैं, लेकिन मैं उन्हें पोस्ट करूंगा। –

+0

** लेबल पर 'क्षैतिज' संपत्ति में 'artistNameLabel' की तुलना में उस लेबल को सेट करने का प्रयास करें ** सामग्री संपीड़न प्रतिरोध प्राथमिकता ** या निरंतर बाधा चौड़ाई मान। –

उत्तर

3

आपका गलती की कमी आप स्थापित किया था पर कोई त्रुटि है।

यह सुनिश्चित करने के लिए कि artistValuationLabel में स्थान दिखाई देने के लिए एक चौड़ाई बाधा जोड़ें।

+0

कोई भी जानता है कि ऐसा क्यों होता है? 'adjustsFontSizeToFitWidth' विशेषता 'सत्य' पर सेट है। उम्मीद है कि यह तय हो जाएगा, क्योंकि 'aspectRatio' सही ढंग से सेट किया गया था (जैसा कि अन्य सभी बाधाएं थीं)। अगर मैं इस सवाल से नहीं पूछा तो मुझे क्या गलत था यह जानने का कोई तरीका नहीं था। –

+0

ऐसा इसलिए हो सकता है क्योंकि 'artistNameLabel' की चौड़ाई प्राथमिकता' artistValuationLabel' से अधिक है, इसलिए जब नाम बहुत लंबा होता है तो लेबल दूसरे लेबल में "आरक्षित" स्थान ले लेगा। जब आप 'कलाकार मूल्यांकन श्रेणी' में एक विशिष्ट चौड़ाई निर्धारित करते हैं तो इसकी 1000 प्राथमिकता होती है, इसलिए यह स्थान हमेशा आरक्षित होगा। –

+0

लेकिन लेबल ओवरलैप नहीं करते हैं क्योंकि मैंने इसे बदल दिया है ताकि इस पर रोक लगाने में बाधा हो। मैंने यह देखने के लिए चौड़ाई निकाली कि क्या यह काम करेगा, लेकिन यह अभी भी ऐसा नहीं होगा इसलिए मुझे इसे वापस रखना पड़ा। –

0

अनुचित चौड़ाई बाधा के कारण यह बात हुई है। या तो आपको आनुपातिक चौड़ाई जोड़ने की आवश्यकता है या आपको उस डिवाइस में चलाना चाहिए जिसके लिए आपने डिज़ाइन किया है।

+0

आप बाएं बाधा भी दे सकते हैं। –