2012-08-06 70 views
0

我对编码iOS相当陌生,希望你能帮助我,谢谢。添加UIPickerView和UIToolBar到UIActionSheet的问题

我已将UIToolBar与一些UIBarButtonItemUIPickerView添加到xib,并且希望将它们添加到UIActionSheet的代码中。该UIToolBarUIBarButtonItemUIPickerViewUIActionSheet的性质,我不喜欢它:

_pickerView.frame = CGRectMake(0, 40, 320, 216); 
[_actionSheet addSubview:_toolBar]; 
[_actionSheet addSubview:_pickerView]; 

正如你可以在下面的图片中看到,有一些问题是:

  1. UIBarButtonItem s的缺失
  2. UIToolBar应该是黑色的
  3. UIPickerView似乎太大了右侧缺少

我知道我可以通过编程的方式完成所有这些,但我认为最好是在xib中放置UI。谁能告诉我如何解决它。

enter image description here

enter image description here

+0

请多说明一下,你凭借这种配置获得了什么。 UIActionSheet通常用于按钮。它从按钮中滑入,向您展示如何进行特定任务的选项。 – 2012-08-06 05:54:23

+1

我认为你只是为动画使用动作表。您应该编写简单的动画代码,而不是将选取器和工具栏添加到动作表中。 – Apurv 2012-08-06 05:56:59

回答

0

最后,我添加了一个UIView包工具栏和选择器,然后在它的代码添加到UIActionSheet

[_actionSheet addSubview:_wrapper]; 

布局是这样做精后。

1

为了得到它在上面的照片显示的期望的结果......我recomand你的编程方法更好,那么厦门国际银行计算策略

我想你重新尝试使用“完成”按钮实施选取器操作表。我会参考使用segemnt控制,而不是使用工具栏。

使用下面的代码,你想显示选择器和完成按钮的操作表。

UIActionSheet *Example_Actionsheet = [[UIActionSheet alloc] initWithTitle:nil delegate:self 
               cancelButtonTitle:nil 
              destructiveButtonTitle:nil 
               otherButtonTitles:nil]; 

    Ex_Picker = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 40, 0, 0)]; 
    Ex_Picker.delegate = self; 
    Ex_Picker.showsSelectionIndicator = YES; // note this is default to NO 
    Example_Actionsheet.actionSheetStyle = UIActionSheetStyleBlackOpaque; 
    [Example_Actionsheet addSubview:Bedroom_Picker]; 
    [Example_Actionsheet showInView:self.view]; 
    [Example_Actionsheet setBounds:CGRectMake(0, 0, 320, 485)]; 

    UISegmentedControl *closeButton = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObject:@"Done"]]; 
    closeButton.momentary = YES; 
    closeButton.frame = CGRectMake(260, 7.0f, 50.0f, 30.0f); 
    closeButton.segmentedControlStyle = UISegmentedControlStyleBar; 
    closeButton.tintColor = [UIColor blueColor]; 
    [closeButton addTarget:self action:@selector(Close_method) forControlEvents:UIControlEventValueChanged]; 
    [Example_Actionsheet addSubview:closeButton]; 
    [Example_Actionsheet release]; 

,如果你想使用工具栏

pickerDateToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)]; 
pickerDateToolbar.barStyle = UIBarStyleBlackOpaque; 
[pickerDateToolbar sizeToFit]; 

NSMutableArray *barItems = [[NSMutableArray alloc] init]; 

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

UIBarButtonItem *doneBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(DatePickerDoneClick)]; 
[barItems addObject:doneBtn]; 

[pickerDateToolbar setItems:barItems animated:YES]; 

并添加工具栏和选择器在actionsheet的子视图。

[aac addSubview:"Your toolbar"]; 
[aac addSubview:"Your picker"]; 

并设置动作表框。它完成与工具栏。

+0

谢谢!我已经看到了使用完成按钮实现pickerview的段控制和工具栏。你能告诉我使用段控制而不是工具栏的好处吗? – candyleung 2012-08-06 07:25:41

+0

如果我仍然不能解决这个问题,也许我只会切换回编程方法... – candyleung 2012-08-06 07:27:33

+0

没有具体的优势......使用工具栏上的segement控制。但通过使用段控制代码变得简单和联系。也可以使用工具栏来实现。我会发布工具栏的代码,通过它你可以通过工具栏实现这个东西。 – Wolverine 2012-08-06 07:37:11

0

以下代码用于添加工具栏作为子视图。

-(IBAction)btnOption:(id)sender{ 

      self.tBar.frame=CGRectMake(0, 0, 320, 44); 
      self.pkrMain.frame=CGRectMake(0, 47, 320, 216); 

      self.act=[[UIActionSheet alloc] initWithTitle:lblReam delegate:self cancelButtonTitle:lblOk destructiveButtonTitle:@"Cancel" otherButtonTitles:@"OptionA",@"OptionB",nil]; 

      [self.act addSubview:self.tBar]; 
      [self.act addSubview:self.pkrMain]; 

      [self.pkrMain reloadAllComponents]; 
      [self.act clipsToBounds]; 
      [self.act showInView:[UIApplication sharedApplication].keyWindow]; 
     } 
2

我建议你添Cinel退房UIActionSheetPicker。它确实使这样的东西对我来说更简单,并且这些示例非常容易遵循和理解。

这里的链接:https://github.com/skywinder/ActionSheetPicker-3.0

(旧链接https://github.com/TimCinel/ActionSheetPicker

这对喜欢做/取消按钮UIPickerView以上了吧,但我发现,修改代码来改变这些按钮也相对容易。

+0

谢谢!我会检查出来的。 – candyleung 2012-08-06 07:28:01

+0

@ flipper新版本是https://github.com/skywinder/ActionSheetPicker-3.0请更新您的链接 – skywinder 2014-10-13 15:31:40

+0

@skywinder我已更新链接。谢谢! – Flipper 2014-10-13 19:42:36