ios - 取消按钮出现但完成按钮未出现在 uitoolbar 中

标签 ios ipad ios5 ios6

我已经编写了下面的代码来沿着 uitoolbar 在弹出窗口中显示日期选择器。
我可以看到取消按钮,但看不到完成按钮。

如果我删除 flexspace 的代码,则会出现完成按钮,但我需要将完成按钮放在最右边的位置,但它位于取消按钮旁边。

我该如何解决这个问题?提前致谢。

    UIViewController* popoverContent = [[UIViewController alloc] init]; //ViewController

    UIView *popoverView = [[UIView alloc] init];   //view
    popoverView.backgroundColor = [UIColor blackColor];

     datePicker=[[UIDatePicker alloc]init];//Date picker
    datePicker.frame=CGRectMake(0,44,320, 216);
    datePicker.datePickerMode = UIDatePickerModeDate;
    [datePicker setMinuteInterval:5];
    [datePicker setTag:10];
    [datePicker addTarget:self action:@selector(Result) forControlEvents:UIControlEventValueChanged];
    [popoverView addSubview:datePicker];

    popoverContent.view = popoverView;
    popoverController = [[UIPopoverController alloc] initWithContentViewController:popoverContent];
    popoverController.delegate=self;



    [popoverController setPopoverContentSize:CGSizeMake(320, 264) animated:NO];
    [popoverController presentPopoverFromRect:self.uitext.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];//tempButton.frame where you need you can put that frame




//    UIToolbar *pickerToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0,320,40)];
//    [pickerToolbar sizeToFit];
//    pickerToolbar.barStyle = UIBarStyleBlackTranslucent;
//    NSMutableArray *barItems = [[NSMutableArray alloc] init];
//    
//    UIBarButtonItem *cancelBtn = [[UIBarButtonItem alloc] initWithTitle:@"Cancel" style:UIBarButtonSystemItemCancel target:self action:@selector(cancel_clicked:)];
//    [barItems addObject:cancelBtn];
//  
//    UIBarButtonItem *flexSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
//    [barItems addObject:flexSpace];
//  
//    UIBarButtonItem *doneBtn = [[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStyleDone target:self action:@selector(done_clicked:)];
//    [barItems addObject:doneBtn];
//    
//  
//    
//    [pickerToolbar setItems:barItems animated:YES];
//    




//    UIPickerView *picker = [[UIPickerView alloc] init];
//    picker.frame = CGRectMake(0, 44, 320, 216);
//    picker.delegate  = self;
//    picker.dataSource = self;
//    picker.showsSelectionIndicator = YES;
//    [actionSheet addSubview:picker];


    UIToolbar *pickerToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0,self.view.bounds.size.width,40)];
    [pickerToolbar sizeToFit];
    pickerToolbar.barStyle = UIBarStyleBlackTranslucent;
    NSMutableArray *barItems = [[NSMutableArray alloc] init];

    UIBarButtonItem *cancelBtn = [[UIBarButtonItem alloc] initWithTitle:@"Cancel" style:UIBarButtonSystemItemCancel target:self action:@selector(cancel_clicked:)];
    [barItems addObject:cancelBtn];

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

    UIBarButtonItem *doneBtn = [[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStyleDone target:self action:@selector(done_clicked:)];
    [barItems addObject:doneBtn];


    [pickerToolbar setItems:barItems animated:YES];
        [popoverView addSubview:pickerToolbar];

    [self.uitext resignFirstResponder];

最佳答案

试试这段代码:-

UIToolbar *pickerToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0,self.view.bounds.size.width,40)];
    [pickerToolbar sizeToFit];
    pickerToolbar.barStyle = UIBarStyleBlackTranslucent;
    NSMutableArray *barItems = [[NSMutableArray alloc] init];

    UIBarButtonItem *cancelBtn = [[UIBarButtonItem alloc] initWithTitle:@"Cancel" style:UIBarButtonSystemItemCancel target:self action:@selector(cancel_clicked:)];
    [barItems addObject:cancelBtn];

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

    UIBarButtonItem *doneBtn = [[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStyleDone target:self action:@selector(done_clicked:)];
    [barItems addObject:doneBtn];


    [pickerToolbar setItems:barItems animated:YES];

    [popoverView addSubview:pickerToolbar];

希望对你有帮助

编辑:-

[pickerToolbar setItems:barItems animated:YES]; 下方添加此行:-

pickerToolbar.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleRightMargin;

并注释[pickerToolbar sizeToFit];

所以你的代码将是

 UIToolbar *pickerToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0,self.view.bounds.size.width,44.0)];
    //[pickerToolbar sizeToFit];
    pickerToolbar.barStyle = UIBarStyleBlackTranslucent;
    NSMutableArray *barItems = [[NSMutableArray alloc] init];

    UIBarButtonItem *cancelBtn = [[UIBarButtonItem alloc] initWithTitle:@"Cancel" style:UIBarButtonSystemItemCancel target:self action:@selector(cancel_clicked:)];
    [barItems addObject:cancelBtn];

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

    UIBarButtonItem *doneBtn = [[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStyleDone target:self action:@selector(done_clicked:)];
    [barItems addObject:doneBtn];


    [pickerToolbar setItems:barItems animated:YES];

    pickerToolbar.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleRightMargin;
    [popoverView addSubview:pickerToolbar];

关于ios - 取消按钮出现但完成按钮未出现在 uitoolbar 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14231621/

相关文章:

ios - 重新调整布局大小后,如何将渐变层的大小放置在 UITextField 后面,匹配 UITextField 大小?

ios - 使用本地化时如何更改应用程序名称

ios - Cocoapods - 是否可以自定义第 3 方 iOS 库?

iphone - 使用 ARC 的优点和缺点是什么?

ios5 - iOS 7 发布后,是否还可以向 App Store 提交针对 iOS5 或 iOS 6 的应用程序

ios - 供应商标识符在 iOS 5.0 版中不起作用

ios - 如何在播放实况照片时禁用触觉反馈

ios - 标签栏 Controller 中子标签之间的数据传输

javascript - ipad中的文件上传问题

c# - 如何使用 Xamarin 在 iPad 上实现 UIDocumentInteractionController