我是iOS
的新手,我遇到了UIActionSheet
的问题。
我的代码就像这样
-(IBAction)picimgbtnClick:(id)sender
{
UIActionSheet *popup = [[UIActionSheet alloc] initWithTitle:@"Profile Photo" delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:nil otherButtonTitles:
@"Gallery",
@"Camera",
@"Remove Photo",
nil];
popup.tag = 1;
[popup showInView:self.view];
}
这适用于iPhone,但是当我在iPad上运行时,UIActionSheet
出现在中间(见下图),也没有显示取消按钮 :
在iPhone上,它看起来像这样:
答案 0 :(得分:1)
首先{@ 1}}已弃用,因此请使用最新代码。
UIActionSheet
正如@balkaran singh所说,它是ipad的默认行为。你无法改变它。如果你想要,那么你具体的自定义类和动画,你可以得到你需要的精确UI。
答案 1 :(得分:0)
此处方法showInView
和showFromRect
会在iPhone
上使用cancel
方法获得showInView
选项,但您在iPad中使用的功能相同你不会得到的。
以下是一些您可以自定义actionSheet
来源的方法,请参见下图:
UIActionSheet's showFromRect:inView:animated:
方法仅应在iPad
上使用。它在iPhone
上的行为未定义。
希望这会对你有所帮助。
答案 2 :(得分:-1)
您无法在iPad底部显示操作表,您可以做的是显示提醒。
自iOS 8以来已弃用的UIActionSheet
类,不应再使用。相反,你应该使用UIAlertController
。这几乎是一样的:
UIAlertController *alert =
[UIAlertController alertControllerWithTitle:@"Profile Photo"
message:@"Select method of input"
preferredStyle:UIAlertControllerStyleAlert];
[alert addAction:[UIAlertAction actionWithTitle:@"Gallery"
style:UIAlertActionStyleDefault
handler:^void (UIAlertAction *action) {
NSLog(@"Clicked Gallery");
}]];
[alert addAction:[UIAlertAction actionWithTitle:@"Camera"
style:UIAlertActionStyleDefault
handler:^void (UIAlertAction *action) {
NSLog(@"Clicked Camera");
}]];
[alert addAction:[UIAlertAction actionWithTitle:@"Remove Photo"
style:UIAlertActionStyleDefault
handler:^void (UIAlertAction *action) {
NSLog(@"Clicked Remove Photo");
}]];
[self presentViewController:alert animated:YES completion:nil];
这会将选项显示为警报,类似于iPhone上的警报表:
没有支持的方式以与iPhone上完全相同的方式(从底部)显示它。如果你考虑一下,很难通过多种方式来触及iPad的底部。中心更有意义。