কীভাবে স্থির স্থান এবং নমনীয় স্পেস বার বোতাম আইটেমগুলি প্রোগ্রামগতভাবে তৈরি করবেন?


উত্তর:


296
UIBarButtonItem *fixedItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];
fixedItem.width = 20.0f; // or whatever you want

UIBarButtonItem *flexibleItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];

44
নোট করুন যে একটি স্থির স্থান ইউআইবারবারটন আইটেমের প্রস্থ নির্ধারণ করতে, আপনাকে .widthসম্পত্তি সেট করতে হবে ।
নিক ফরজ

নিখুঁত উত্তর!
প্রতীক জামারিয়া

কোডটি ব্যবহার করে সমস্ত বোতামের মধ্যে আমরা কীভাবে নমনীয় প্রস্থকে সমান ব্যবধান দিতে পারি? আমি হার্ড কোডের প্রস্থ = 20.0
সত্যম

@ সত্যম
fl034

15

দ্রুতগতি

// Fixed Space
let fixedSpace: UIBarButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FixedSpace, target: nil, action: nil)
fixedSpace.width = 20.0

// Flexible Space
let flexibleSpace: UIBarButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: nil, action: nil)

7
UIBarButtonItem *todayItem = [[UIBarButtonItem alloc] initWithTitle:@"Today" style:UIBarButtonItemStylePlain target:self action:@selector(update_baritem:)];
todayItem.tag = 2;

UIBarButtonItem *cashItem = [[UIBarButtonItem alloc] initWithTitle:@"Cash" style:UIBarButtonItemStylePlain target:self action:@selector(update_baritem:)];
cashItem.tag = 3;

UIBarButtonItem *creditItem = [[UIBarButtonItem alloc] initWithTitle:@"Credit" style:UIBarButtonItemStylePlain target:self action:@selector(update_baritem:)];
creditItem.tag = 4;

UIBarButtonItem *allItem = [[UIBarButtonItem alloc] initWithTitle:@"All" style:UIBarButtonItemStylePlain target:self action:@selector(update_baritem:)];
allItem.tag = 1;

UIBarButtonItem *returnItem = [[UIBarButtonItem alloc] initWithTitle:@"Return" style:UIBarButtonItemStylePlain target:self action:@selector(update_baritem:)];
returnItem.tag = 5;

UIBarButtonItem *fixedItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];
[fixedItem setWidth:455.0f];

UIBarButtonItem *fixed2Item = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];
[fixed2Item setWidth:37.0f];

UIBarButtonItem *flexibleItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];

[self.toolbar setItems:@[fixed2Item, returnItem, creditItem, cashItem, fixedItem, todayItem, flexibleItem, allItem] animated:NO];

আপনি কেন বাম আইটেমগুলিতে ডান বারের বোতাম আইটেম সেট করছেন ? এটি আসলেই খারাপ শৈলী বা বাগ এবং আমি জানি না কোনটি।
বেন লাচম্যান

1

ভিউডিডলডে:

    //toolbar
UIToolbar *toolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 416, 320, 44)];

// bar btns
UIBarButtonItem *backBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemRewind target:self action:@selector(goBack)];
UIBarButtonItem *forwardBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFastForward target:self action:@selector(goForward)];
UIBarButtonItem *flexibleSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];
UIBarButtonItem *bookmarkBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemBookmarks target:self action:@selector(bookmark)];
UIBarButtonItem *refreshBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemRefresh target:self action:@selector(refresh)];
UIBarButtonItem *stopLoadingBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemStop target:self action:@selector(stopLoading)];

// add btns to the bar
[toolBar setItems:[NSMutableArray arrayWithObjects:bookmarkBtn,backBtn,forwardBtn,flexibleSpace,refreshBtn,stopLoadingBtn, nil]];

// adds the toobar to the view
[self.view addSubview:toolBar];

প্রতিটি বোতামের জন্য ক্রিয়াগুলিও ভুলে যাবেন না (উদাহরণস্বরূপ একটি ইউআইবিউব ভিউ):

    -(void)goBack
{
    [_webView goBack];
}

-(void)goForward
{
    [_webView goForward];
}

প্রভৃতি


1

সুইফট 3 এর সাথে, UIBarButtonItemএকটি ইনিশিয়ালাইজার কল রয়েছে init(barButtonSystemItem:target:action:)init(barButtonSystemItem:target:action:)নিম্নলিখিত ঘোষণা আছে:

convenience init(barButtonSystemItem systemItem: UIBarButtonSystemItem, target: Any?, action: Selector?)

নির্দিষ্ট সিস্টেম আইটেমযুক্ত একটি নতুন আইটেম শুরু করে।


UIBarButtonSystemItemএকটি শুমার সহ অনেক ক্ষেত্রে দেয় done, play, addবা cancel। তবে আপনার প্রয়োজন অনুসারে আপনি চয়ন flexibleSpaceবা fixedSpaceমামলাও করতে পারেন ।

flexibleSpace মামলার নিম্নলিখিত ঘোষণা রয়েছে:

অন্যান্য আইটেমের মধ্যে ফাঁকা স্থান। স্থানটি অন্য আইটেমগুলির মধ্যে সমানভাবে বিতরণ করা হয়। এই মানটি সেট করা থাকলে অন্যান্য আইটেমের বৈশিষ্ট্য উপেক্ষা করা হয়।

fixedSpace মামলার নিম্নলিখিত ঘোষণা রয়েছে:

অন্যান্য আইটেমের মধ্যে ফাঁকা স্থান। widthএই মানটি সেট করা হলে কেবল সম্পত্তি ব্যবহৃত হয়।


অতএব, আপনি নীচে প্রদর্শিত হিসাবে প্রোগ্রামিতভাবে স্থির এবং নমনীয় স্পেস বার বোতাম আইটেম তৈরি করতে পারেন:

let flexibleSpace = UIBarButtonItem(
    barButtonSystemItem: UIBarButtonSystemItem.flexibleSpace,
    target: nil,
    action: nil
)
let fixedSpace = UIBarButtonItem(
    barButtonSystemItem: UIBarButtonSystemItem.fixedSpace,
    target: nil,
    action: nil
)
fixedSpace.width = 30 // Set width with the appropriate value

উদাহরণস্বরূপ, নীচের প্লেগ্রাউন্ড কোডটি দেখায় যে কীভাবে দুটি নিয়ন্ত্রণ কেন্দ্রের প্লে এবং একটি বিরতি বারের বোতাম আইটেমগুলিকে একটি ভিউ কন্ট্রোলারে 30 এর একটি নির্দিষ্ট স্থান দ্বারা পৃথক করে একটি নীচের বারটি যুক্ত করতে হয়:

import PlaygroundSupport
import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        view.backgroundColor = .white
        title = "Home"
    }

    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)

        // Show navigation controller’s built-in toolbar
        navigationController?.setToolbarHidden(false, animated: false)

        // Create UIBarButtonItems
        let flexibleSpace1 = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)
        let playItem = UIBarButtonItem(barButtonSystemItem: .play, target: self, action: nil)
        let fixedSpace = UIBarButtonItem(barButtonSystemItem: .fixedSpace, target: nil, action: nil)
        fixedSpace.width = 30
        let pauseItem = UIBarButtonItem(barButtonSystemItem: .pause, target: self, action: nil)
        let flexibleSpace2 = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)

        // Set the view controller toolbar items
        setToolbarItems([flexibleSpace1, playItem, fixedSpace, pauseItem, flexibleSpace2], animated: false)
    }

    override func viewWillDisappear(_ animated: Bool) {
        // Hide navigation controller’s built-in toolbar
        navigationController?.setToolbarHidden(true, animated: true)

        super.viewWillDisappear(animated)
    }

}

let viewController = ViewController()
let navigationController = UINavigationController(rootViewController: viewController)
PlaygroundPage.current.liveView = navigationController

ViewGround Assistant Editor▸ ব্যবহার করে প্লেগ্রাউন্ড সহকারী সম্পাদকটিতে আপনার ভিউ কন্ট্রোলারটির পূর্বরূপ দেখুন ▸Show Assistant Editor

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


0

সুইফ্ট 5.1.2

// Fixed Space
let fixedSpace: UIBarButtonItem = UIBarButtonItem(barButtonSystemItem: .fixedSpace, target: nil, action: nil)
fixedSpace.width = 20.0

// Flexible Space
let flexibleSpace: UIBarButtonItem = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)

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