ios - 在右侧而不是左侧显示 UIToolbar 的 UIBarButtonItem

标签 ios objective-c uibarbuttonitem uitoolbar uidatepicker

谁能告诉我为什么我的按钮在左边而不是右边?我想要它在右边。感谢您提供的任何帮助!

- (IBAction)getSelection:(id)sender {

    if(self.pickerShown == NO){

        self.slidePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0,0, 320, 216)];
        self.slidePicker.datePickerMode = UIDatePickerModeTime;
        self.slidePicker.backgroundColor = [UIColor whiteColor];
        [self.view addSubview:self.slidePicker];

        //make done button
        self.toolBar= [[UIToolbar alloc] initWithFrame:CGRectMake(0,0,320,44)];
        self.toolBar.barTintColor = [UIColor whiteColor];
        self.barButtonDone = [[UIBarButtonItem alloc] initWithTitle:@"Done"
                                                              style:UIBarButtonItemStylePlain target:self
                                                             action:@selector(testButton)];

        self.toolBar.items = [[NSArray alloc] initWithObjects:self.barButtonDone,nil];
        self.navigationItem.rightBarButtonItem = self.barButtonDone;
        self.barButtonDone.tintColor=[UIColor blackColor];
        self.pickerShown = YES;
        [self.view addSubview:self.toolBar];
    }
    else {
        return;
    }
}

最佳答案

您需要添加:

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

并改变:

self.toolBar.items = [[NSArray alloc] initWithObjects: flexSpace, self.barButtonDone,nil];

我觉得你可以:

//self.navigationItem.rightBarButtonItem = self.barButtonDone;

信息:

UIBarButtonSystemItemFlexibleSpace 是在其他项目之间添加的空格。空间在其他项目之间平均分配。设置此值时将忽略其他项目属性。

Apple 文档:UIBarButtonItem Class Reference

此外,您在 Xcode Interface Builder 中有 Flexible Space Bar Button Item:

enter image description here

关于ios - 在右侧而不是左侧显示 UIToolbar 的 UIBarButtonItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22780216/

相关文章:

ios - 如何修复动画?

IOS:创建 UIBarButtonItem 后如何重置它的操作?

ios - 在其图像上显示 UIBarButton 标题

swift - 存在后退按钮时无法设置 UINavigationBar 标题或将 UIButtons 放置在 UINavigationBar 中

objective-c - 在 Prefix.pch 中过度导入? (#ifdef __OBJC__)

ios - 如何正确编码和解码字符串?

ios - Cocoapod 的 'pod install' 使用 Prefix Header 会产生奇怪的行为

ios - 如何在 swift 5 中使用 for 循环创建数组的数组

iOS 试图解决严重的崩溃问题

iphone - 使用本地时区将 unix 时间戳转换为 NSdate