ios कैसे एक UIButton अंदर एक छवि केंद्र में तेजी से दोनों दिशा में खींच के बिना केंद्र?




swift uiimage (3)

मैं स्टोरीबोर्ड पर साइज इंस्पेक्टर का उपयोग करके सामग्री इन्ससेट को 0 में सेट करके छवि को केन्द्रित करने में सक्षम था:

मैं एक कस्टम कीबोर्ड बना रहा हूं और मुझे शिफ्ट बटन के अंदर बदलाव आइकन की छवि को केन्द्रित करने की आवश्यकता है। छवि 100px x 100px है

हालांकि, चित्र में बटन फ्रेम 36pt x 38pt , और परिदृश्य में, यह 68pt x 32pt । मैंने छवि को केन्द्रित करने के लिए बटन छवि इनसेट संपत्ति का उपयोग करने की कोशिश की है। हालांकि, यह ऐसा नहीं करता है

मैंने अपने आप को कोशिश की और इमेज के किनारे की (25,25,25,25) को (25,25,25,25) सेट किया, दोनों आकारों में छवि केंद्र हालांकि, आइकन देखने के लिए बहुत छोटा हो जाता है

shiftButton.setImage(UIImage(named: "shift"), forState: .Normal)

shiftButton.imageEdgeInsets = UIEdgeInsetsMake(0,0,0,0)

मैं बटन को प्रोग्रामैटिक रूप से बना रहा हूं और, मुझे अपना पहलू अनुपात 1:1 बनाए रखने के लिए बटन की आवश्यकता है। इसकी अधिकतम चौड़ाई या ऊंचाई हमेशा बटन की ऊँचाई से जुड़ी होती है। छवि की चौड़ाई / ऊंचाई को अधिकतम बटन की ऊंचाई होना चाहिए। और, यह आइकन को विकृत करने के लिए किसी भी तरह से खिंचाव नहीं होना चाहिए। हालांकि, बटन ही खिंचाव कर सकते हैं

मुझे बटन फ्रेम के अनुसार पैमाने पर चित्र की आवश्यकता है लेकिन इसके पहलू अनुपात को बनाए रखना चाहिए और, यह स्केल या अप पैमाने को घटा सकता है, लेकिन हमेशा 1: 1 पहलू अनुपात बनाए रखना चाहिए।

इस समस्या को हल करने के लिए कोई सुझाव?

सधन्यवाद,
एरियल


अंत में एक समाधान आया। यह लगभग एक हफ़्ता रहा है जब मैंने इस पर काम किया था।

आपको UIButton के अंदर छवि के लिए सामग्री मोड सेट करना होगा

जब UIButton के contentMode के साथ एक बटन के अंदर एक अग्रभूमि छवि का उपयोग कर रहे हैं, तो Image का सामग्री contentMode को अपडेट करने का समाधान है।

shiftButton.contentMode = .Center
shiftButton.imageView?.contentMode = .ScaleAspectFit

सधन्यवाद,
एरियल।


Center की बटन की सामग्री मोड को सेट करें:

shiftButton.contentMode = .Center




uiimage