ios 设置控制器背景半透明_iOS开发之自定义UITabBarController-模态出半透明的控制器...

本文介绍了如何自定义UITabBarController以实现点击中间按钮模态出半透明控制器的效果。通过创建自定义TabBar、按钮和设置modalPresentationStyle属性,实现了在显示新控制器视图的同时保持对原始视图的可见性。提供了具体代码实现和解决方案。
摘要由CSDN通过智能技术生成

自定义tabBar并modal出半透明的控制器的view.gif

前言

现在很多app,尤其一些直播的app,都在做如上的tabBar点击效果,点击两边的按钮是苹果默认的切换方式,点击中间按钮,是模态出一个新控制器的view,这里主要涉及到自定义UITabBarController,你可能还看到modal出的新控制器的view是半透明的,在显示自己view的同时也可以看到原先控制器的视图,这里主要用了控制器的一个modalPresentationStyle属性来设置,最近看到很多直播app的如上效果,于是想着自己封装实现一下,放出来,供大家参考。

正文

自定义UITabBarController:

自定义UITabBarController的实现原理其实很简单,就是隐藏苹果自带的tabBar,使用自定义UIView代替;然后自定义Button加在自定义的tabBar的view上;最后将自定义的button 与UITabBarController的子viewController一一对应。而自定义的button需要使上面显示按钮图片,下面是文字Label,实现这些的重点是计算Button的imageView和Label的宽度和X坐标值。

下面是具体的实现代码:

CustomTabBar:继承自UIView,充当tabBar

当前内容已被隐藏,您需要登录才能查看快速登录快速注册

CustomTabBarItemButton:继承自UIButton,充当tabBarItem

当前内容已被隐藏,您需要登录才能查看快速登录快速注册

MyTabBarViewController:继承自UITabBarController

当前内容已被隐藏,您需要登录才能查看快速登录快速注册

modal出的新控制器的半透明的view:

模态出一个半透明的视图, 在目标视图中设置背景颜色然后发现模态动作结束后变成了黑色或者不是半透明的颜色。在iOS8之后只需要为要present的控制器的modalPresentationStyle属性设置一个最新的值UIModalPresentationOverCurrentContext就可以解决这种需求。

然而这个属性是iOS 8才出来的,所以针对iOS 7或更低的系统,需要设置window的根控制器的modalPresentationStyle为UIModalPresentationCurrentContext。

代码如下:

当前内容已被隐藏,您需要登录才能查看快速登录快速注册

源码已上传至fenglinyunshi-git,欢迎下载,并提出宝贵意见。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值