छवि का आकार बहुत बड़ा होने पर कोड का उपयोग करना, मैं पर पर प्रतिपादन/सेटिंग करने से पहले आकार बदलता हूं। मेरे पास यह एक्सटेंशन UIImage
पर है जो एक छवि को फिर से स्केल करने में मदद करता है।
// MARK: - Used to scale UIImages
extension UIImage {
func scaleTo(_ newSize: CGSize) -> UIImage {
UIGraphicsBeginImageContextWithOptions(newSize, false, 0.0)
self.draw(in: CGRect(x: 0, y: 0, width: newSize.width, height: newSize.height))
let newImage: UIImage = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()
return newImage
}
}
इस का उपयोग करते हुए इस
let defaultImage = UIImage(named: "someimagenamehere")?
.scaleTo(CGSize(width: 40, height: 40))
self.navigationItem.leftBarButtonItem = UIBarButtonItem(
image: defaultImage,
style: .plain,
target: self,
action: #selector(self.someselectorhere(_:)))
अद्यतन दिखाई देगा: यह वही है @IBDesignable और @IBInspectable कोई रास्ता नहीं करने के लिए का उपयोग कर
@IBDesignable
class CustomBarButtonItem: UIBarButtonItem {
@IBInspectable
var scaledHeight: CGFloat = 0 {
didSet {
self.image = self.image?.scaleTo(CGSize(width: self.scaledHeight, height: self.scaledWidth))
}
}
@IBInspectable
var scaledWidth: CGFloat = 0 {
didSet {
self.image = self.image?.scaleTo(CGSize(width: self.scaledHeight, height: self.scaledWidth))
}
}
}
स्रोत
2017-10-16 03:57:56
तो वहाँ है कैसा दिखेगा है यह स्टोरीबोर्ड के भीतर ही है? –
मेरा अनुमान एक 'आईबी डिज़ाइन करने योग्य' 'UIBarButtonItem' Subclass बनाना होगा जिसमें कुछ' IBInspectable' गुण हैं जो छवियों को फिर से स्केल करने में मदद करेंगे। –
'IBDesignable' का उपयोग करके पूरी तरह से काम किया। बहुत बहुत धन्यवाद। अंत में बक्षीस पुरस्कार होगा। –