当前位置: 移动技术网 > IT编程>移动开发>IOS > IOS MenuViewController实现弹出菜单效果

IOS MenuViewController实现弹出菜单效果

2019年07月24日  | 移动技术网IT编程  | 我要评论

耿惠昌是耿飚的儿子,谷仓医疗信息平台,小方块超级玛丽

在写项目时,要实现一个从下移上来的一个弹出菜单,并且背景变深的这么一个效果,在此分享给大家。

主要说一下思路及一些核心代码贴出来,要想下载源码,请点击下载:

一个简单,效果好,比较实用的菜单弹出效果的实现,效果图:

实现方式:将self.view当前页面缩小,在当前页的上面添加一个菜单的view,即在self.view.superview添加。

//显示 
- (void) show:(uiview*)parent 
{ 
  parentview = parent; 
   
  //先隐藏backview,table 
  backview.alpha = 0; 
  _table.alpha = 0; 
   
  //移动table 
  [_table settransform:cgaffinetransformmaketranslation(0, _table.frame.size.height)]; 
   
  //父窗口添加本view,---这个会调用viewdidload 
  [parentview.superview addsubview:self.view]; 
   
  //添加动画,添加到父窗口中,使之从下移动上 
  [uiview animatewithduration:0.3 animations:^{ 
    //父窗口缩小 
    cgaffinetransform t = cgaffinetransformmakescale(0.9, 0.9); 
    [parentview settransform:t]; 
     
    //显示backview,table 
    backview.alpha = 1; 
    _table.alpha = 1; 
     
    //移动table,cgaffinetransformidentity还原原始坐标 
    [_table settransform:cgaffinetransformidentity]; 
 
  } completion:^(bool finished) { 
     
  }]; 
   
   
} 
//隐藏 
- (void) hide 
{ 
  //添加动画,添加到父窗口中,使之从下移动上 
  [uiview animatewithduration:0.3 animations:^{ 
    //父窗口还原  
    cgaffinetransform t = cgaffinetransformidentity; 
    [parentview settransform:t]; 
     
    //显示backview,table 
    backview.alpha = 0; 
    _table.alpha = 0; 
     
    //移动table 
    [_table settransform:cgaffinetransformmaketranslation(0, _table.frame.size.height)]; 
     
  } completion:^(bool finished) { 
    [self.view removefromsuperview]; 
  }]; 
} 
 
- (void)viewdidload 
{ 
  [super viewdidload]; 
   
  self.view.backgroundcolor = [uicolor clearcolor]; 
   
  //背影黑罩 
  backview = [[uiview alloc]initwithframe:self.view.bounds]; 
  backview.backgroundcolor = [uicolor colorwithred:0 green:0 blue:0 alpha:0.3]; 
  [self.view addsubview:backview]; 
   
  //算出table的cgrect 
  cgrect rect = self.view.bounds; 
  int height = _titlearray.count * 44; 
  rect.origin.y = rect.size.height - height; 
  rect.size.height = height; 
   
  _table = [[uitableview alloc]initwithframe:rect]; 
  _table.delegate = self; 
  _table.datasource = self; 
  [self.view addsubview:_table]; 
 
} 

这个菜单你可以任意自定义,我这里是一个tableview,你可以写一些有图和文字的添加上去。只需要把源代码稍改,就ok!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网