Objective-C实现自定义的半透明导航
本文实例为大家分享了Objective-C半透明导航的具体实现代码,供大家参考,具体内容如下
#definekScreenWidth[[UIScreenmainScreen]bounds].size.width #definekScreenHeight[[UIScreenmainScreen]bounds].size.height #import"RSwenNav.h" @implementationRSwenNav { UIVisualEffectView*effectview; } -(instancetype)initWithFrame:(CGRect)frame{ self=[superinitWithFrame:frame]; if(self){ UIBlurEffect*blur=[UIBlurEffecteffectWithStyle:UIBlurEffectStyleLight]; effectview=[[UIVisualEffectViewalloc]initWithEffect:blur]; effectview.frame=frame; [selfaddSubview:effectview]; [selfaddSubviews]; } returnself; } //添加导航子视图 -(void)addSubviews{ [selfaddSubview:self.backBtn]; [selfaddSubview:self.titleLabel]; [selfaddSubview:self.rightBtn]; } -(UIButton*)backBtn{ UIButton*btn=[UIButtonbuttonWithType:UIButtonTypeCustom]; btn.frame=CGRectMake(20,20,60,44); [btnsetTitle:@"返回"forState:UIControlStateNormal]; [btnaddTarget:selfaction:@selector(RSwenNavback)forControlEvents:UIControlEventTouchUpInside]; returnbtn; } -(UILabel*)titleLabel{ UILabel*lable=[[UILabelalloc]init]; lable.font=[UIFontsystemFontOfSize:17]; lable.textAlignment=NSTextAlignmentCenter; lable.frame=CGRectMake(100,20,kScreenWidth-200,44); lable.text=@"我的主页"; returnlable; } -(UIButton*)rightBtn{ UIButton*btn=[UIButtonbuttonWithType:UIButtonTypeCustom]; btn.frame=CGRectMake([UIScreenmainScreen].bounds.size.width-100,20,80,44); [btnsetTitle:@"保存"forState:UIControlStateNormal]; [btnaddTarget:selfaction:@selector(rightBtnClicked)forControlEvents:UIControlEventTouchUpInside]; returnbtn; } #pragma事件处理部分 //返回上个界面 -(void)RSwenNavback{ //获取UIView的上层UIViewController idobject=[selfnextResponder]; while(![objectisKindOfClass:[UIViewControllerclass]]&& object!=nil){ object=[objectnextResponder]; } UIViewController*uc=(UIViewController*)object; [uc.navigationControllerpopViewControllerAnimated:YES]; } //右侧按钮被点击 -(void)rightBtnClicked{ if([_delegaterespondsToSelector:@selector(RSwenNavrightBtnClicked)]){ [_delegateRSwenNavrightBtnClicked]; } } @end
以上就是本文的全部内容,希望对大家的学习有所帮助。