我有一个带有日期选择器的UIView,我想在一个操作表中显示。我正在使用以下代码:
-(IBAction) button_click:(id)sender{
//UIActionSheet *sheet = [[UIActionSheet alloc] initWithTitle:@"the title" delegate:nil cancelButtonTitle:@"Cancel" destructiveButtonTitle:@"Destructive" otherButtonTitles:@"other", nil];
UIActionSheet *sheet = [[UIActionSheet alloc] init];
ActionSheetController *actionSheet = [[ActionSheetController alloc] initWithNibName:@"ActionSheetView" bundle:nil];
[sheet addSubview:actionSheet.view];
[sheet showInView:self.view];
}
我得到的是从底部出现的新视图的顶部部分,就是这样。如果我评论代码的两个中间行并取消注释顶部以显示常规操作表,它可以正常工作。我可能做错了什么想法?
答案 0 :(得分:1)
使用UIActionSheetDelegate,然后您可以使用此委托添加例如图像到警报表的按钮
- (void)willPresentActionSheet:(UIActionSheet *)actionSheet{
UIImageView *sample = [[UIImageView alloc] initWithImage:[UIImage
imageNamed:@"Someimage.png"]];
[actionSheet addSubView:sample];
}
答案 1 :(得分:0)
我不相信您可以在UIActionSheet中指定自定义视图。我的理解是你只能显示一个标题和一个或多个按钮。以下是Apple文档中对UIActionSheet的描述:
使用UIActionSheet类向用户显示如何继续执行给定任务的一组备选方案。您还可以使用操作表提示用户确认可能存在危险的操作。操作表包含一个可选标题和一个或多个按钮,每个按钮对应一个要执行的操作。
答案 2 :(得分:0)
我发现行为发生是因为我没有正确使用UIActionSheet构造函数。应包括按钮和标题:
UIActionSheet *menu = [[UIActionSheet alloc] initWithTitle:@"Date Picker" delegate:self cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles:nil];
答案 3 :(得分:0)
您可能想要查看我制作的UIActionSheet替代方案,它可以让您显示自定义内容视图而不会出现任何肮脏的黑客攻击:https://github.com/JonasGessner/JGActionSheet它还有一些优于UIActionSheet的优势!