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
以上就是本文的全部内容,希望对大家的学习有所帮助。