سؤال

لدي ثلاثة 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];
هل كانت مفيدة؟

المحلول

أضف اثنين من عناصر uibarbuttonsystemitemflexiblespace إلى شريط الأدوات الخاص بك ، إلى اليسار واليمين من العناصر الخاصة بك

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

إن إضافة هذه العناصر الأخرى التي ستقوم بتوزيعها بشكل متساوٍ بين اثنين منها.

نصائح أخرى

يمكن أيضًا القيام بذلك مباشرة من لوحة العمل.

ما عليك سوى سحب العناصر وإسقاطها في شريط الأدوات ، وحول بعضها إلى مساحة مرنة أو ثابتة للحصول على التأثير المطلوب. انظر المثالين أدناه.

Evenly spaced

Centered

في Xamarin iOS

محاذاة الحق:

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

محاذاة المركز:

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

النسخة السريعة:

    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]
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top