用presentViewController一个背景颜色半透明的模态视图

本人ios新手一个,刚开始以为presentViewController一个视图,只需要通过将背景色设置alpha值就能实现半透明,例如:

UIViewController *ctrl = [UIViewController alloc] init];
ctrl.view.backgroundColor=[UIColor colorWithWhite:0 alpha:0.4];
ctrl.modalPresentationStyle = UIModalTransitionStyleCoverVertical;
 [self presentViewController:ctrl animated:YES completion:nil];

 但是发现视图在动画时是半透明,但是结束动画后会变成不透明的。以下是其中一个较简单的解决方案

UIViewController *ctrl = [[UIViewController alloc] init];
ctrl.modalPresentationStyle = UIModalPresentationOverCurrentContext;//注意这里是OverCurrentContext,还有一个相似的UIModelPresentationCurrentContext。貌似这里不能设置成别的模式。其他方案不知道能否设置成别的模式,项目时间紧迫,暂且稍记录下,以后再补充。
self.definesPresentationContext = YES;//self 为presenting 视图
 [self presentViewController:ctrl animated:YES completion:nil];

 

posted on 2016-01-11 09:42  技术大白  阅读(2434)  评论(0编辑  收藏  举报