我对iOS编码很陌生,希望你能帮助我,谢谢你。
我已向xib添加了UIToolBar
,其中包含UIBarButtonItem
和UIPickerView
,并希望将它们添加到代码中的UIActionSheet
中。 UIToolBar
,UIBarButtonItem
,UIPickerView
和UIActionSheet
是属性,我这样做:
_pickerView.frame = CGRectMake(0, 40, 320, 216);
[_actionSheet addSubview:_toolBar];
[_actionSheet addSubview:_pickerView];
如下图所示,它存在一些问题:
UIBarButtonItem
s缺失UIToolBar
应为黑色UIPickerView
似乎太大而右侧缺失我知道我可以通过编程方式完成所有这些操作,但我认为最好将UI内容放在xib中。谁能告诉我如何解决它。
答案 0 :(得分:2)
我建议您查看Tim Cinel的UIActionSheetPicker。它确实让我这样的东西变得更简单,而且这些例子很容易理解。
以下是链接:https://github.com/skywinder/ActionSheetPicker-3.0
(旧链接 https://github.com/TimCinel/ActionSheetPicker )
UIPickerView上方有一个条形,用于完成/取消等按钮,但我发现修改代码以更改这些按钮也相对容易。
答案 1 :(得分:1)
为了获得上面照片中显示的所需结果......我重新编程你的编程方法比xib approch更好
我认为您正在尝试使用“完成”按钮实施选取器操作表。我将使用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];
在动作表的子视图中添加工具栏和选择器。
[aac addSubview:"Your toolbar"];
[aac addSubview:"Your picker"];
并设置操作表框。它完成了工具栏。
答案 2 :(得分: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];
}
答案 3 :(得分:0)
最后,我添加了UIView
来包装工具栏和选择器,然后将其添加到代码中的UIActionSheet
:
[_actionSheet addSubview:_wrapper];
这样做后布局很好。