Objective-C实现自定义的半透明导航

 更新时间:2016年05月16日 16:25:49   作者:随心_而动  
这篇文章主要为大家详细介绍了Objective-C实现自定义的半透明导航的相关资料,需要的朋友可以参考下

本文实例为大家分享了Objective-C半透明导航的具体实现代码,供大家参考,具体内容如下

#define kScreenWidth [[UIScreen mainScreen] bounds].size.width
#define kScreenHeight [[UIScreen mainScreen] bounds].size.height
 
#import "RSwenNav.h"
 
@implementation RSwenNav
{
 UIVisualEffectView *effectview;
}
-(instancetype)initWithFrame:(CGRect)frame{
 self=[super initWithFrame:frame];
 if (self) {
  UIBlurEffect *blur = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];
 effectview = [[UIVisualEffectView alloc] initWithEffect:blur];
 effectview.frame=frame;
 [self addSubview:effectview];
 [self addSubviews];
 }
 return self;
}
 
//添加导航子视图
-(void)addSubviews{
 [self addSubview:self.backBtn];
 [self addSubview:self.titleLabel];
 [self addSubview:self.rightBtn];
 
}
-(UIButton *)backBtn{
 UIButton * btn=[UIButton buttonWithType:UIButtonTypeCustom];
 btn.frame=CGRectMake(20, 20, 60, 44);
 [btn setTitle:@"返回" forState:UIControlStateNormal];
 [btn addTarget:self action:@selector(RSwenNavback) forControlEvents:UIControlEventTouchUpInside];
 return btn;
}
 
-(UILabel *)titleLabel{
 UILabel * lable=[[UILabel alloc]init];
 lable.font=[UIFont systemFontOfSize:17];
 lable.textAlignment=NSTextAlignmentCenter;
 lable.frame=CGRectMake(100, 20, kScreenWidth-200, 44);
 lable.text=@"我的主页";
 return lable;
}
 
-(UIButton *)rightBtn{
 UIButton * btn=[UIButton buttonWithType:UIButtonTypeCustom];
 btn.frame=CGRectMake([UIScreen mainScreen].bounds.size.width-100, 20, 80, 44);
 [btn setTitle:@"保存" forState:UIControlStateNormal];
 [btn addTarget:self action:@selector(rightBtnClicked) forControlEvents:UIControlEventTouchUpInside];
 return btn;
}
 
#pragma 事件处理部分
 
//返回上个界面
-(void)RSwenNavback{
 //获取UIView的上层UIViewController
 id object = [self nextResponder];
 while (![object isKindOfClass:[UIViewController class]] &&
  
  object != nil) {
  
 object = [object nextResponder];
  
 }
 UIViewController *uc=(UIViewController*)object;
 
 [uc.navigationController popViewControllerAnimated:YES];
}
 
//右侧按钮被点击
-(void)rightBtnClicked{
 if ([_delegate respondsToSelector:@selector(RSwenNavrightBtnClicked)]) {
 [_delegate RSwenNavrightBtnClicked];
 }
}
 
@end

以上就是本文的全部内容,希望对大家的学习有所帮助。

相关文章

  • iOS自定义控件开发梳理总结

    iOS自定义控件开发梳理总结

    这篇文章主要介绍了iOS自定义控件开发梳理总结,自定义控件能让我们完全控制视图的展示内容以及交互操作。具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2016-11-11
  • iOS 配置.gitignore文件详细介绍

    iOS 配置.gitignore文件详细介绍

    这篇文章主要介绍了iOS 配置.gitignore文件详细介绍的相关资料,需要的朋友可以参考下
    2017-04-04
  • ios学习笔记之基础数据类型的转换

    ios学习笔记之基础数据类型的转换

    在编码过程中,数据的处理是必要的。众多数据中,NSString、NSData、NSArray、 NSDictionary等数据类型是常用的,对付它们容易,但是在多个数据类型之间转换就需要技巧了。本文主要给大家介绍ios中基础数据类型的转换,有需要的下面来一起看看吧。
    2016-11-11
  • 2016年iOS公开可利用漏洞总结

    2016年iOS公开可利用漏洞总结

    本文总结了2016年比较严重的iOS漏洞(可用于远程代码执行或越狱),希望能够对大家移动安全方面的工作和研究带来一些帮助。
    2016-12-12
  • iOS实现代码只执行一次

    iOS实现代码只执行一次

    本文给大家分享的是在iOS中控制代码在整个软件生命周期中只运行一次的代码,有需要的小伙伴可以参考下。
    2016-03-03
  • iOS UIButton扩大按钮响应区域的解决方法

    iOS UIButton扩大按钮响应区域的解决方法

    这篇文章主要为大家详细介绍了iOS UIButton扩大按钮响应区域的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • iOS NSURLProtocol的具体使用方法详解

    iOS NSURLProtocol的具体使用方法详解

    本篇文章主要介绍了iOS NSURLProtocol的具体使用方法详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • 详解iOS应用开发中使用设计模式中的抽象工厂模式

    详解iOS应用开发中使用设计模式中的抽象工厂模式

    这篇文章主要介绍了iOS应用开发中使用设计模式中的抽象工厂模式,示例代码为传统的Objective-C,需要的朋友可以参考下
    2016-03-03
  • 替代pod update速度慢的lg_pod_plugin安装使用详解

    替代pod update速度慢的lg_pod_plugin安装使用详解

    这篇文章主要介绍了替代pod update速度慢lg_pod_plugin安装使用方式详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • Xcode8下iOS10常见报错闪退,字体适配和编译不过的问题及解决方案

    Xcode8下iOS10常见报错闪退,字体适配和编译不过的问题及解决方案

    苹果推送了iOS10,好多朋友迅速即将系统升级了ios10,然后遇到好多问题。下面小编给针对遇到的问题给大家介绍解决方法,希望对大家有所帮助,感兴趣的朋友可以参考下
    2016-09-09

最新评论