ইউআইটিউল বার আইটেম সারিবদ্ধ করা


112

আমি UIBarButtonItemনীচে হিসাবে তিনটি তৈরি করেছেন। তারা বামদিকে সারিবদ্ধ হয় এবং আমি কেন্দ্রটি সারিবদ্ধ করতে চাই যাতে ডানদিকে কোনও ফাঁক নেই। আমি কোনও প্রান্তিক সম্পত্তি দেখছি না UIToolBar। এটি সম্পাদন করার অন্য কোনও উপায় আছে?

//create some buttons
UIBarButtonItem *aboutButton = [[UIBarButtonItem alloc] initWithTitle:@"About" style:UIBarButtonItemStyleBordered target:self action:@selector(showAbout:)];
[toolbar setItems:[NSArray arrayWithObjects:settingsButton,deleteButton,aboutButton,nil]];
//Add the toolbar as a subview to the navigation controller.
[self.navigationController.view addSubview:toolbar];

উত্তর:


259

আপনার সরঞ্জামদণ্ডে, আপনার আইটেমের বাম এবং ডানদিকে দুটি ইউআইবারবারটন সিস্টেম আইটেম ফ্লেক্সিবলস্পেস আইটেম যুক্ত করুন

UIBarButtonItem *flexibleSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
[toolbar setItems:[NSArray arrayWithObjects:flexibleSpace, settingsButton,deleteButton,aboutButton, flexibleSpace, nil]];

এগুলি যোগ করার ফলে আপনি অন্য কোনও সরঞ্জামদণ্ডের আইটেমগুলি উভয়ের মধ্যে সমানভাবে স্থান বিতরণ করবেন।


25
একাধিক নমনীয় স্থান তৈরি করার বাস্তব কারণ নেই। আপনার একাধিকের প্রয়োজন হলে আপনি একাধিকবার আপনার সরঞ্জামদণ্ডে একই বহু নমনীয় স্পেস অবজেক্ট যুক্ত করতে পারেন।
এমএমসি

মিমি সঠিক। আসলে, সম্ভবত একটি সিঙ্গলটন নমনীয় স্পেস তৈরি করা এবং আপনার পণ্য জুড়ে এটি পুনরায় ব্যবহার করা পুরোপুরি যুক্তিসঙ্গত হবে। আমি শুনেছি এটি দাবি করেছে যে এটিই ছিল সিঙ্গলটনের আসল আসল ব্যবহার: প্রোগ্রামের বিধি প্রয়োগের জন্য নয়, ওভারহেড হ্রাস করার জন্য।
Amagrammer

2
আপনি রিলিজ কল আপডেট করতে ভুলে গেছেন, [ফ্লেক্সিবলস্পেস রিলিজ] পড়া উচিত;
ড্যানিয়েল হিপার

হ্যাঁ, দুঃখিত, এটি [নমনীয় স্পেস রিলিজ] এর পরিবর্তে [ফ্লেক্সিবলস্পেস রিলিজ] পড়েছে। টাইপো স্থির
nduplessis

30

এটি স্টোরিবোর্ড থেকেও করা যেতে পারে।

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

সমানভাবে ব্যবধানযুক্ত

কেন্দ্রীভূত


8

Xamarin আইওএস এ

ডান সারিবদ্ধ:

yourBar.SetItems(new [] { new UIBarButtonItem(UIBarButtonSystemItem.FlexibleSpace), yourButton }, false);

কেন্দ্র সারিবদ্ধ:

var flexibleSpace = new UIBarButtonItem(UIBarButtonSystemItem.FlexibleSpace);
yourBar.SetItems(new [] { flexibleSpace, yourButton, flexibleSpace}, false);

5
এটি বিষয় নয়। আমরা এখানে খাঁটি আইওএস সম্পর্কে কথা বলছি।
jturolla

4
মনো টাচ লক্ষ্য করে কোনটি।
হারমান শোএনফিল্ড

2
উদ্দেশ্য সি প্রশ্ন না MonoTouch / C # এর
ম্যাক্স ম্যাকলিয়ড

6
@ ম্যাক্সম্যাকলিউড: এটি ট্যাগ করা হয়নি-সি, এটি আইফোন ট্যাগ করেছে। সুতরাং আমার উত্তর বৈধ। সি # বনাম আপত্তি-সি বিপরীতে এটিও ভাল। স্পষ্টতই, সি # হ'ল আধুনিক, পাতলা, উত্তম, দ্রুত এবং উন্নত every
হারমান শোয়ানফেল্ড

12
যদিও এটি পরিষ্কার হয়ে গেছে যে প্রশ্নের কোডটি উদ্দেশ্যমূলক-সি ছিল, আমি এই উত্তরটি সহায়ক বলে মনে করেছি। এটি গুগলেও একটি উচ্চমানের প্রশ্ন।
jacob.toye

7

সুইফ্ট সংস্করণ:

    let toolbar = UIToolbar(frame: CGRectMake(0, 0, viewController.view.frame.size.width, 35.0))
    let flexibleSpace = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: viewController, action: nil)
    let button1 = UIBarButtonItem(title: "A", style: UIBarButtonItemStyle.Plain, target: viewController, action: foo)
    let button2 = UIBarButtonItem(title: "B", style: UIBarButtonItemStyle.Plain, target: viewController, action: bar)
    let button3 = UIBarButtonItem(title: "C", style: UIBarButtonItemStyle.Plain, target: viewController, action: blah)
    toolbar.items = [button1, flexibleSpace, button2, flexibleSpace, button3]
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.