मैं सोच रहा हूं कि जब numberOfLines
को 1 पर सेट किया गया है, तो मेरा UILabel सही ढंग से फ़ॉन्ट का आकार क्यों नहीं बदल रहा है। मेरे पास नीचे दिए गए कोड के साथ एक खेल का मैदान है:
import UIKit
import PlaygroundSupport
let labelFrame = CGRect(x: 0, y: 0, width: 100, height: 100)
let label = UILabel(frame: labelFrame)
label.backgroundColor = .lightGray
label.text = "Something that's pretty long"
label.baselineAdjustment = .alignCenters
label.adjustsFontSizeToFitWidth = true
label.numberOfLines = 1
label.minimumScaleFactor = 0.1
let frame = CGRect(x: 0, y: 0, width: 300, height: 300)
let view = UIView(frame: frame)
view.backgroundColor = .white
view.addSubview(label)
PlaygroundPage.current.liveView = view
हालांकि, जब मैं numberOfLines
को 2 में बदलता हूं तो फ़ॉन्ट वैसे ही सिकुड़ जाता है जैसे मैं उम्मीद करता हूं:
import UIKit
import PlaygroundSupport
let labelFrame = CGRect(x: 0, y: 0, width: 100, height: 100)
let label = UILabel(frame: labelFrame)
label.backgroundColor = .lightGray
label.text = "Something that's pretty long"
label.baselineAdjustment = .alignCenters
label.adjustsFontSizeToFitWidth = true
label.numberOfLines = 2 // <<<<<< this is the only change
label.minimumScaleFactor = 0.1
let frame = CGRect(x: 0, y: 0, width: 300, height: 300)
let view = UIView(frame: frame)
view.backgroundColor = .white
view.addSubview(label)
PlaygroundPage.current.liveView = view
यहाँ क्या चल रहा है? क्या यह एक बग है या मैं कुछ गलत कर रहा हूँ?
1 उत्तर
हम्म्म्म ऐसा लगता है कि यह खेल के मैदानों में सिर्फ एक बग है। अगर मैं इस लाइन को जोड़ूं
label.lineBreakMode = .byTruncatingMiddle
सब कुछ उम्मीद के मुताबिक काम करता है। दरअसल, इनमें से कोई भी काम:
label.lineBreakMode = .byCharWrapping
label.lineBreakMode = .byClipping
label.lineBreakMode = .byTruncatingHead
label.lineBreakMode = .byTruncatingMiddle
label.lineBreakMode = .byWordWrapping
वह जो काम नहीं करता (और डिफ़ॉल्ट भी है) है
label.lineBreakMode = .byTruncatingTail
जब मैंने एक वास्तविक सिम्युलेटर में यह कोशिश की तो सब कुछ अच्छा लग रहा था, इसलिए मुझे लगता है कि मैं बस एक खेल के मैदान में भाग गया।
संबंधित सवाल
नए सवाल
ios
iOS, Apple iPhone, iPod टच और iPad पर चलने वाला मोबाइल ऑपरेटिंग सिस्टम है। IOS प्लेटफॉर्म पर प्रोग्रामिंग से संबंधित प्रश्नों के लिए इस टैग [ios] का उपयोग करें। उन प्रोग्रामिंग भाषाओं के लिए विशिष्ट मुद्दों के लिए संबंधित टैग [उद्देश्य-सी] और [स्विफ्ट] का उपयोग करें।