将UIToolbar的UIBarButtonItem显示在右侧而不是左侧。

3

有人能告诉我为什么我的按钮在左边而不是右边吗?我希望它在右边。感谢您能给予的任何帮助!

- (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;
    }
}
1个回答

2

您需要添加:

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是一段空白的间隔,可以添加在其他项目之间。该空间在其他项目之间平均分配。当设置此值时,忽略其他项目属性。

苹果官方文档: UIBarButtonItem类参考

此外,在Xcode界面构建器中,您还可以使用Flexible Space Bar Button Item:

enter image description here


1
非常感谢你,Gaberiel。我很感激你花时间向我解释这个问题。你太棒了! - Dev123Dev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接