UIButton के शीर्षक को बाएं संरेखण के रूप में कैसे सेट करें?


472

मुझे बाईं ओर से ईमेल पता प्रदर्शित करने की आवश्यकता है UIButton, लेकिन इसे केंद्र में तैनात किया जा रहा है।

वहाँ बाईं ओर संरेखण सेट करने के लिए कोई रास्ता नहीं है UIButton?

यह मेरा वर्तमान कोड है:

UIButton* emailBtn = [[UIButton alloc] initWithFrame:CGRectMake(5,30,250,height+15)];
emailBtn.backgroundColor = [UIColor clearColor];
[emailBtn setTitle:obj2.customerEmail forState:UIControlStateNormal];
emailBtn.titleLabel.font = [UIFont systemFontOfSize:12.5];
[emailBtn setTitleColor:[[[UIColor alloc]initWithRed:0.121 green:0.472 blue:0.823 alpha:1]autorelease] forState:UIControlStateNormal];
[emailBtn addTarget:self action:@selector(emailAction:) forControlEvents:UIControlEventTouchUpInside];
[elementView addSubview:emailBtn];
[emailBtn release];

जवाबों:


1566

सामग्री सेट करें

emailBtn.contentHorizontalAlignment = .left;

आप सामग्री को बाएं इनसेट में समायोजित करना चाहते हैं अन्यथा पाठ बाईं सीमा को स्पर्श करेगा:

emailBtn.contentEdgeInsets = UIEdgeInsetsMake(0, 10, 0, 0);

// Swift 3 and up:
emailBtn.contentEdgeInsets = UIEdgeInsets(top: 0, left: 10, bottom: 0, right: 0);

44
ध्यान रखें कि आप इन दोनों गुणों को इंटरफ़ेस बिल्डर से भी सेट कर सकते हैं।
मिहाई दामियन

1
इसलिए यह मुझसे 9000, थैंक्स, उपयोगी उत्तर था
लॉजिक

6
हम दस्तावेज़ खोजने के लिए बहुत आलसी हैं। एसओ के बिना हम क्या करेंगे!
केदार परांजपे

3
एसओ यह दिखाने के लिए जाता है कि Apple दस्तावेज़ से बेहतर दस्तावेज है।
जीनकोड

1
UIControlContentHorizontalAlignmentLeadingऔर UIControlContentHorizontalAlignmentTrailingiOS 11 में जोड़ा गया
Cal Stephens

118

यदि आप कोड में समायोजन नहीं करना चाहते हैं तो आप इंटरफ़ेस बिल्डर का भी उपयोग कर सकते हैं। यहाँ मैंने पाठ को संरेखित किया और इसे कुछ इंडेंट भी किया:

IB में UIButton

मत भूलना तुम भी बटन में एक छवि संरेखित कर सकते हैं:

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


इसने मुझे एक टन से बाहर निकालने में मदद की, मुझे विश्वास नहीं हो रहा है कि मुझे एहसास नहीं है कि उन नियंत्रणों के लिए क्या था।
एथन पार्कर

धन्यवाद, इसने मेरी मदद की। मैं आपके नमूना चित्रों में तीर संकेत की मदद के बिना बटन शीर्षक के लिए किनारे के इनसेट्स का पता लगाने में सक्षम नहीं था।
अशोक

xcode 8.2.1 में यह अन्य जगह पर ले जाया गया नीचे मेरा उत्तर देख
डांग

प्रोग्राम को स्विफ्ट में कैसे करें? मैं दाईं ओर छवि संरेखित करना चाहता हूं, और बाईं ओर शीर्षक है ???
विसाल संबो


13
UIButton *btn;
btn.contentVerticalAlignment = UIControlContentVerticalAlignmentTop;
btn.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;

13

स्विफ्ट 4+

button.contentHorizontalAlignment = .left
button.contentVerticalAlignment = .top
button.contentEdgeInsets = UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10)

9

का उपयोग करना emailBtn.titleEdgeInsetsबेहतर है contentEdgeInsets, यदि आप बटन के अंदर पूरी सामग्री की स्थिति को बदलना नहीं चाहते हैं।




5

@DyingCactus के कोड में एक छोटी सी त्रुटि है। यहाँ बटन 'शीर्षक' को बेहतर ढंग से नियंत्रित करने के लिए बटन पाठ संरेखित करने के लिए एक UIButton में एक UILabel जोड़ने के लिए सही समाधान है:

NSString *myLabelText = @"Hello World";
UIButton *myButton = [UIButton buttonWithType:UIButtonTypeCustom];

// position in the parent view and set the size of the button
myButton.frame = CGRectMake(myX, myY, myWidth, myHeight); 

CGRect myButtonRect = myButton.bounds;
UILabel *myLabel = [[UILabel alloc] initWithFrame: myButtonRect];   
myLabel.text = myLabelText;
myLabel.backgroundColor = [UIColor clearColor];
myLabel.textColor = [UIColor redColor]; 
myLabel.font = [UIFont fontWithName:@"Helvetica Neue" size:14.0];   
myLabel.textAlignment = UITextAlignmentLeft;

[myButton addSubview:myLabel];
[myLabel release];

उम्मीद है की यह मदद करेगा....

अल


2

स्विफ्ट 2.0 के लिए:

emailBtn.contentHorizontalAlignment = UIControlContentHorizontalAlignment.Left  

अगर किसी को जरूरत हो तो यह मदद कर सकता है।


2

में स्विफ्ट 5.0 और Xcode 10.2

आपके पास दो तरीके हैं

1) प्रत्यक्ष दृष्टिकोण

btn.contentHorizontalAlignment = .left

2) SharedClass उदाहरण (एक बार लिखें और हर वेयर का उपयोग करें)

यह आपकी साझा कक्षा है (जैसे आप सभी घटक गुणों तक पहुँच प्राप्त करते हैं)

import UIKit

class SharedClass: NSObject {

    static let sharedInstance = SharedClass()

    private override init() {

    }
}

//UIButton extension
extension UIButton {
    func btnProperties() {
        contentHorizontalAlignment = .left
    }
}

अपने ViewController कॉल में इस तरह

button.btnProperties()//This is your button

1

प्रयत्न

button.semanticContentAttribute = UISemanticContentAttributeForceRightToLeft;

1
यह मेरे लिए काम करता है, contentHor क्षैतिजAlignment नहीं किया, धन्यवाद।
डैनफोर्डधाम
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.