ios & UIActionSheet
2012-01-29 15:08
375 查看
UIActionSheet和UIPopoverController对于新手来说,经常会被搞得莫名其妙,继而猛揪头发,菊花一直处在紧绷的状态而不得解,下面我总结一下我用UIActionSheet的心得。
我想实现的一个功能是这样的:在我长按页面上的一个位置的时候,显示一个浮动窗口出来,窗口有指向此位置的指向缺口,窗口里面有菜单列表,点击触发各种操作。
听起来UIPopoverController是一个很好的选择,然后我们可以往UIPopoverController里面放我们所需要的button,刚开始实现还可以,后来被UIPopoverController的位置弄的焦头烂额,在屏幕内乱跑,并且放置多少button都需要自己计算来控制UIPopoverController的大小和位置,有想研究的可以看看这位仁兄的博客:http://xyyk.iteye.com/blog/838038
用UIPopoverController来实现还是比较麻烦的,其实,一个UIActionSheet就可以了,只不过要注意showInView方法是显示在屏幕中间,不会出现指示效果,而showFromRect方法是指向rect的中心位置的,具体用法如下:
UIActionSheet *tempActionsheet = [[UIActionSheet alloc] initWithTitle:strUrl
delegate:self
cancelButtonTitle:nil
destructiveButtonTitle:nil
otherButtonTitles:nil];
[tempActionsheet addButtonWithTitle:@“button name1”];
[tempActionsheet addButtonWithTitle:@“button name2”];
[tempActionsheet addButtonWithTitle:@“button name3”];
[tempActionsheet showFromRect:CGRectMake(ptx, pty, 1, 1) inView:self.view animated:NO];
[tempActionsheet release];
这段代码的意思是创建了一个UIActionSheet,指向:CGRectMake(ptx, pty, 1, 1)的中心,其他的委托方法自己查阅sdk实现
现在有一个问题就是当屏幕旋转的时候UIActionSheet会自动消失,我的解决方法是重新创建一次:将上面代码的tempActionsheet给私有成员:actionsheet,然后在屏幕旋转委托中调用:
[actionsheet dismissWithClickedButtonIndex:0 animated:NO];
[actionsheet release];
actionsheet = nil;
[self createActionSheet];//重新创建,再次调用上面代码
至此,UIActionSheet基本能够满足我们的要求,但是有一点至今没有搞懂的是,即使主动调用了:[actionsheet dismissWithClickedButtonIndex:0 animated:NO]; UIActionSheet在消失的时候还是会附加动画效果,这个问题困扰了我很久了,一直没有取消这个动画效果,有知道的高人能指点小弟一二,小弟不胜感激。
我想实现的一个功能是这样的:在我长按页面上的一个位置的时候,显示一个浮动窗口出来,窗口有指向此位置的指向缺口,窗口里面有菜单列表,点击触发各种操作。
听起来UIPopoverController是一个很好的选择,然后我们可以往UIPopoverController里面放我们所需要的button,刚开始实现还可以,后来被UIPopoverController的位置弄的焦头烂额,在屏幕内乱跑,并且放置多少button都需要自己计算来控制UIPopoverController的大小和位置,有想研究的可以看看这位仁兄的博客:http://xyyk.iteye.com/blog/838038
用UIPopoverController来实现还是比较麻烦的,其实,一个UIActionSheet就可以了,只不过要注意showInView方法是显示在屏幕中间,不会出现指示效果,而showFromRect方法是指向rect的中心位置的,具体用法如下:
UIActionSheet *tempActionsheet = [[UIActionSheet alloc] initWithTitle:strUrl
delegate:self
cancelButtonTitle:nil
destructiveButtonTitle:nil
otherButtonTitles:nil];
[tempActionsheet addButtonWithTitle:@“button name1”];
[tempActionsheet addButtonWithTitle:@“button name2”];
[tempActionsheet addButtonWithTitle:@“button name3”];
[tempActionsheet showFromRect:CGRectMake(ptx, pty, 1, 1) inView:self.view animated:NO];
[tempActionsheet release];
这段代码的意思是创建了一个UIActionSheet,指向:CGRectMake(ptx, pty, 1, 1)的中心,其他的委托方法自己查阅sdk实现
现在有一个问题就是当屏幕旋转的时候UIActionSheet会自动消失,我的解决方法是重新创建一次:将上面代码的tempActionsheet给私有成员:actionsheet,然后在屏幕旋转委托中调用:
[actionsheet dismissWithClickedButtonIndex:0 animated:NO];
[actionsheet release];
actionsheet = nil;
[self createActionSheet];//重新创建,再次调用上面代码
至此,UIActionSheet基本能够满足我们的要求,但是有一点至今没有搞懂的是,即使主动调用了:[actionsheet dismissWithClickedButtonIndex:0 animated:NO]; UIActionSheet在消失的时候还是会附加动画效果,这个问题困扰了我很久了,一直没有取消这个动画效果,有知道的高人能指点小弟一二,小弟不胜感激。
相关文章推荐
- IOS之UIActionSheet& UIAlertView
- IOS复习UIActionSheet&UIAlertView
- iOS之UIActionSheet
- iOS学习之UIActionSheet的使用
- iOS开发之自定义系统的UIActionSheet修改按钮的属性
- iOS学习之UIActionSheet的使用
- IOS UIActionSheet的使用方法
- IOS中UIActionSheet使用方法详解
- iOS学习笔记—— UIAlertView 和 UIActionSheet 的使用
- iOS学习之UIActionSheet的使用
- iOS开发 对话框UIActionSheet和UIAlertView用法
- ios里的UIActionSheet的使用
- UIAlertView&UIActionSheet
- iOS中UIActionSheet动态添加按钮
- IOS开发UI篇之──自定义UIActionSheet【转】
- iOS学习之UIActionSheet的使用
- iOS UIAlertController弹框(OS9.0 后替代UIAlertView弹框和UIActionSheet下弹框)
- iOS - UIActionSheet
- IOS基础UI之(五)UIAlertView、UIActionSheet和UIAlertController详解
- iOS学习之UIActionSheet的使用