কীভাবে UIButton এর পাঠ্য প্রান্তিককরণ কেন্দ্র করবেন? আইবি ব্যবহার করে


139

আইবিটিকে কেন্দ্র হিসাবে ব্যবহার করে আমি ইউআইবাটনটির শিরোনাম সেট করতে পারি না। আমার শিরোনাম মাল্টি লাইন।
এটা এই মত দিচ্ছে
এখানে চিত্র বর্ণনা লিখুন

তবে আমি এই মত চাই
এখানে চিত্র বর্ণনা লিখুন

আমি এতে স্থান দিয়েছি কিন্তু আমি এটি করতে চাই না। যেহেতু এটি কিছু ক্ষেত্রে হুবহুভাবে সাজানো হয়নি এবং আমি জানি যে প্রান্তিককরণ স্থাপন করার জন্য ইউআইএলবেলের একটি সম্পত্তি রয়েছে তবে আমি তার জন্য একটি কোড লিখতে চাই না .. কেবল আইবি থেকে সমস্ত কিছু সেট করতে চাই।

ধন্যবাদ


7
কুমার রাঠোর - কোড দিয়ে চেষ্টা করুনself.yourButton.titleLabel.textAlignment = UITextAlignmentCenter;
সাগর আর কোঠারি ২

1
@ স্পার্ক আমি কোড দিয়ে এটি কীভাবে করব তা জানি তবে আমি যা চাইছিলাম তা হ'ল 'আইবি' ব্যবহার করে সেট করা।
ইন্দ্র কুমার রাঠোর

আমি জানি, আপনি আইবি ব্যবহার করে এটি সেট করতে চান। তবে এই জাতীয় সম্পত্তি কেবল কোডের মাধ্যমে অ্যাক্সেসযোগ্য।
সাগর আর কোঠারি

এটি আইবি এর মাধ্যমে এট্রিবিউট করে এটি অ্যাক্সেসযোগ্য তবে কে সে সম্পর্কে চিন্তা করে!
ইউসুফ মোয়াওয়াদ

@ ইউসেফসামি হ্যাঁ আপনি ঠিক স্ট্যাকওভারফ্লো.com
ইন্দ্র কুমার রাঠোর

উত্তর:


197

এটি আপনি যা আশা করেছিলেন ঠিক তা তৈরি করবে:

উদ্দেশ্য গ:

 [myButton.titleLabel setTextAlignment:UITextAlignmentCenter];

আইওএস 6 বা তারও বেশি এর জন্য

 [myButton.titleLabel setTextAlignment: NSTextAlignmentCenter];

হিসাবে tyler53 এর উত্তর ব্যাখ্যা

সুইফট:

myButton.titleLabel?.textAlignment = NSTextAlignment.Center

উপরে 4.x এবং উপরে

myButton.titleLabel?.textAlignment = .center

1
এটি iOS এর পরবর্তী সংস্করণগুলিতে NSTextAlignment হয়ে গেছে।
সুলিভান

4
Thas কোড কাজ করে না, সর্বোত্তম উত্তরটি হ'ল জোয়েজাহাহmyButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;
আলবার্তো মায়ার

8
ইন্টারফেস বিল্ডার হিসাবে প্রশ্নটি স্পষ্টভাবে আইবি-র উল্লেখ করেছে । এই না সঠিক উত্তর, যেমন কোডিং প্রয়োজন।
সুইফট আরকিটেক্ট

1
সুইফট 4: myButton.titleLabel? .XtxtAlignment =। সেন্টার
লুইস ব্ল্যাক

'সেন্টার' এর নাম পরিবর্তন করে 'সেন্টার' করা হয়েছে
ModusPwnens

106

লাইনটি ব্যবহার করুন:

myButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;

এটি সামগ্রীর (অনুভূমিকভাবে) কেন্দ্র করে নেওয়া উচিত।

এবং যদি আপনি পাশাপাশি লেবেলের অভ্যন্তরে পাঠ্যটি সেট করতে চান তবে ব্যবহার করুন:

[labelOne setTextAlignment:UITextAlignmentCenter];

আপনি যদি আইবি ব্যবহার করতে চান তবে আমি এখানে একটি ছোট উদাহরণ পেয়েছি যা এক্সকোড 4 এ লিঙ্কযুক্ত রয়েছে তবে যথেষ্ট বিশদ সরবরাহ করা উচিত (মনে রাখবেন, সেই বৈশিষ্ট্যগুলির পর্দার উপরে এটি সম্পত্তি ট্যাবটি দেখায় X আপনি এক্সকোডে একই ট্যাবগুলি সন্ধান করতে পারেন) 3.x): এখানে চিত্র বর্ণনা লিখুন


1
ধন্যবাদ ... তবে আমি এটি আইবির মাধ্যমে সেট করতে চাই না। :( এটি করা আমার শেষ বিকল্প ...
ইন্দার কুমার রাঠোর

1
@ ইন্ডার কুমার রাঠোর: কোনও সমস্যা নেই। এটি আইবিতে সেট করতে, আপনার লেবেলে ক্লিক করা উচিত, তারপরে অ্যাট্রিবিউটস ইন্সপেক্টরটিতে, "সেন্টার" এ প্রান্তিককরণ সেট করুন। আমার আইবিতে (এক্সকোড 4) এতে 3 টি আইকন রয়েছে যা পাঠ্যের প্রান্তিককরণ দেখায়। স্পষ্টতই, আপনার তখন মাঝেরটিটি বেছে নেওয়া উচিত।
জোতজাহ

আপনি কি আমাকে স্ক্রিন শট প্রেরণ করতে পারেন ... এটি কি বাটনটির লেবেল বা আপনি গ্রন্থাগার থেকে ইউআইএলবেলকে টেনে নিয়েছেন ??? আমি মনে করি এটি ইউইলবেল নয় বোতামের লেবেল
ইন্দ্র কুমার রাঠোর

@ ইন্ডার কুমার রাঠোর: আরে, আমি যুক্ত স্ক্রিনশটটি পরীক্ষা করে দেখুন। আপনি যে ধরণের লেবেল ব্যবহার করেন তা আমি সত্যিই ভুল করে ফেলেছি, আমি এখনও ইউআইবাটন টেক্সটের পরিবর্তে ইউআইএলবেলকে নিয়ে ভাবছিলাম। স্ক্রিনশটটি দেখায় যে কীভাবে আইবি-র মাধ্যমে ইউআইবাটনে সারিবদ্ধ করা যায়।
জোতজাহ

1
আমাকে সম্পাদনা করতে দেয় না, তবে এনএসটিেক্সটএলাইনমেন্ট সেন্টারটি ইউআইটিেক্সটএলাইনমেন্ট সেন্টারের জায়গা করে নিয়েছে। তারা ঠিক একই জিনিস মানে। বিকাশকারী.অ্যাপল.
References/…

89

Solution1

আপনি স্টোরিবোর্ডে মূল পথটি সেট করতে পারেন

আপনার মাল্টলাইন শিরোনামে পাঠ্যটি সেট করুন যেমন hello + multiline

পরবর্তী লাইনে পাঠ্য সরানোর জন্য আপনাকে + টিপতে হবে।

এখানে চিত্র বর্ণনা লিখুন

তারপরে মূল পথটি যুক্ত করুন

titleLabel.textAlignmentযেমন Numberএবং মান 1, 1মানে NSTextAlignmentCenter
titleLabel.numberOfLinesযেমন Numberএবং মান 0, 0লাইনের কোন সংখ্যা মানে

এখানে চিত্র বর্ণনা লিখুন

এটি আইবি / এক্সকোডে প্রতিফলিত হবে না, তবে সঞ্চালনের সময় এটি কেন্দ্রে থাকবে (ডিভাইস / সিমুলেটর)

আপনি যদি এক্সকোডে পরিবর্তনগুলি দেখতে চান তবে আপনাকে নিম্নলিখিতগুলি করতে হবে: (মনে রাখবেন আপনি এই পদক্ষেপগুলি এড়িয়ে যেতে পারেন)

  1. বোতামটি ডিজাইনযোগ্য করে তুলতে UIButton সাবক্লাস করুন:

    import UIKit
    @IBDesignable class UIDesignableButton: UIButton {}

  2. আপনি যে বোতামগুলিতে সংশোধন করছেন তা এই নকশাযোগ্য সাবক্লাসটি অর্পণ করুন:

ইন্টারফেস বিল্ডার ব্যবহার করে কীভাবে বোতামের শ্রেণি পরিবর্তন করবেন তা দেখানো হচ্ছে

  1. যদি সঠিকভাবে সম্পন্ন হয়, আপনি ডিজাইনেবল রাষ্ট্র "আপ টু ডেট" হওয়ার সময় আইবিতে ভিজ্যুয়াল আপডেটটি দেখতে পাবেন (যা কয়েক সেকেন্ড সময় নিতে পারে):

ইন্টারফেস বিল্ডারে ডিজাইনযোগ্য এবং ডিফল্ট বোতামের তুলনা করা



Solution2

আপনি যদি কোডটি লিখতে চান তবে দীর্ঘ প্রক্রিয়াটি করুন

1.Create IBOutletবোতামটি
viewDidLoad মধ্যে 2.Write কোড

btn.titleLabel.textAlignment = .Center
btn.titleLabel.numberOfLines = 0


Solution3

এক্সকোডের নতুন সংস্করণে (খনিটি এক্সকোড .1.১) আমাদের বৈশিষ্ট্যযুক্ত শিরোনাম
নির্বাচন করুন Attributedতারপরে নীচে পাঠ্যটি নির্বাচন করুন এবং সেন্টার বিকল্পটি নির্বাচন করুন

পিএস টেক্সট মাল্টিলাইন আসছে না যে জন্য আমি সেট করতে হবে

btn.titleLabel.numberOfLines = 0

এখানে চিত্র বর্ণনা লিখুন


সমাধান 3 এর জন্য, আপনি কেবল যোগ করতে পারেন Line Breaking = Clip, এটি
পাঠ্যটিকে বহু লক্ষে

সলিউশন 3 টিতে সমস্যা আছে, কমপক্ষে Xcode 11.3.1 এর সাথে: যখন আমি বোতামটির শিরোনাম পরিবর্তন করি, এটি কার্যকর হয় না। যখন আমি ব্যবহার করি btn.titleLabel.textAlignment, এটি দুর্দান্ত কাজ করে।
ব্রায়ান হংক

27

ইউআইবাটনের জন্য আপনার ব্যবহার করা উচিত: -

[btn setContentHorizontalAlignment:UIControlContentHorizontalAlignmentCenter];


13

আপনারা যারা এখন আইওএস 6 বা ততোধিক ব্যবহার করছেন তাদের জন্য ইউআইটিেক্সটএলাইনমেন্টসেন্টার অবহিত করা হয়েছে। এটি এখন এনএসটিেক্সটএলাইনমেন্ট সেন্টার

উদাহরণ: mylabel.textAlignment = NSTextAlignmentCenter;পুরোপুরি কাজ করে।


12

সুইফ্ট 4, এক্সকোড 9 এর জন্য

myButton.contentHorizontalAlignment = .center

আমি myButton.titleLabel? .NumberOfLines = 0 সেট করেছিলাম এবং এটি বোতামের মধ্যে লেবেলকে কেন্দ্রের দিকে নিয়ে যায়, তাই আমি কীভাবে বোতামের মধ্যে বামে টেক্সটটি সারিবদ্ধ করতে পারি তা চেষ্টা করার চেষ্টা করছিলাম, তবে এটি বামে সেট করে রেখেছি।
ম্যাক্সোডগুলি

7

অনুমান করে যে বিটিএন একটি ইউআইবাটনকে বোঝায়, অনুভূমিকভাবে কেন্দ্রে একাধিক-লাইন ক্যাপশন পরিবর্তন করতে আপনি আইওএস 6 বা তারপরে নিম্নলিখিত বিবৃতিটি ব্যবহার করতে পারেন:

self.btn.titleLabel.textAlignment = NSTextAlignmentCenter;

4

UITextAlignmentCenter iOS6 এ অবমূল্যায়িত হয়েছে

পরিবর্তে আপনি এই কোডটি ব্যবহার করতে পারেন:

btn.titleLabel.textAlignment=NSTextAlinmentCenter;


UIButton কলি পাঠ্যক্রমের জন্য কোনও সম্পত্তি নেই।
রবি


তার অর্থ বাটন.টাইটেললেল.টেক্সটএলাইনমেন্ট
ওসি রিকার্ড



3

আসলে আপনি এটি ইন্টারফেস বিল্ডারে করতে পারেন।

আপনার শিরোনামটি "অ্যাট্রিবিউটড" এ সেট করা উচিত এবং তারপরে সেন্টার অ্যালাইনমেন্ট চয়ন করা উচিত।


যদি এটির বৈশিষ্ট্যযুক্ত হয় তবে আমরা স্টোরিবোর্ডের মাধ্যমে পাঠ্য রঙ, ফন্ট ইত্যাদি সেট করতে পারি না।
ভিনিষ টিপি

3

এটির মতো চেষ্টা করুন:

yourButton.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
yourButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;

2

আপনি স্টোরিবোর্ড থেকে এটি করতে পারেন। আপনার বোতামটি নির্বাচন করুন। লাইন ব্রেক 'ওয়ার্ড র‌্যাপ' সেট করুন, আপনার শিরোনাম 'সমতল' 'বৈশিষ্ট্যযুক্ত' এ সেট করুন to 'কেন্দ্র বিন্যাস' নির্বাচন করুন। এই অংশটি গুরুত্বপূর্ণ => ক্লিক করুন ... (আরও) বোতাম। এবং 'চরিত্রের মোড়কে' লাইন ব্রেকিং মোড নির্বাচন করুন।


1

ইউআইবাটন সেটটেক্সট অ্যালাইনমেন্ট সমর্থন করবে না। সুতরাং আপনাকে বাটন পাঠ্য সারিবদ্ধকরণের জন্য সেটকন্টেন্টহরিজন্টালালাইমেন্টের সাথে যেতে হবে

আপনার রেফারেন্সের জন্য

[buttonName setContentHorizontalAlignment:UIControlContentHorizontalAlignmentCenter];
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.