我一直在研究这个,似乎唯一的方法就是使用UIActionSheet,问题是我的UIActionSheet只覆盖了屏幕的一半,我的代码是:
MyViewController *myVC = [[myViewController alloc] init];
UIActionSheet *myActionSheet = [[UIActionSheet alloc] initWithTitle:@"\n\n"
delegate:self
cancelButtonTitle:@"cancel"
destructiveButtonTitle:@"done"
otherButtonTitles:nil];
[myActionSheet addSubview:myVC.view];
[myActionSheet showInView:currentView];
[myActionSheet release];
另外,如何从MyViewController中关闭此UIActionSheet?有没有比这更好的解决方案?这是我加载一半屏幕的意思截图:
以下a sample project来说明我的问题。
答案 0 :(得分:1)
问题是因为TestViewController的框架大小和将UIView添加为UIActionSheet
的子视图的方法。
进行以下更改,并且正确解雇!
在该方法中实施willPresentActionSheet
和addSubView
- (IBAction)pressed:(id)sender
{
UIActionSheet *myActionSheet = [[UIActionSheet alloc] initWithTitle:@"\n\n" delegate:self cancelButtonTitle:@"cancel" destructiveButtonTitle:@"done" otherButtonTitles:nil];
[myActionSheet showInView:self.view];
[myActionSheet release];
}
- (void) willPresentActionSheet:(UIActionSheet *)actionSheet{
TestViewController *myVC = [[TestViewController alloc] init];
[actionSheet addSubview:myVC.view];
}
在viewDidLoad
的{{1}}中,设置
TestViewController
答案 1 :(得分:1)
UIActionSheet
会根据其中UIButton
的数量增加或减少它的高度。您可以做的是在视图上方添加另一个视图,并添加所需的alpha。然后将其从子视图中删除,并根据您的要求添加子视图,即在显示动作表时添加子视图,并在解除UIActionSheet
时删除。我希望这与您的问题相关,它将帮助您解决问题。