本人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];

 

相关文章:

  • 2021-12-15
  • 2022-12-23
  • 2022-02-06
  • 2021-12-23
猜你喜欢
  • 2021-12-13
  • 2022-12-23
  • 2021-12-27
  • 2022-12-23
  • 2021-08-14
  • 2021-04-11
相关资源
相似解决方案