本人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];
用presentViewController一个背景颜色半透明的模态视图
原文:http://www.cnblogs.com/oyhj/p/5120212.html