首页 热点专区 小学知识 中学知识 出国留学 考研考公
您的当前位置:首页正文

实现类似于导航栏的半透明效果

来源:要发发知识网

遇到这个主要是因为看到App Store精品推荐模块中, 通过每一个分类的显示全部按钮点进去后, 跳转页的导航栏明显比64px高, 但是依然有导航栏效果, 所以就琢磨怎么实现的, 于是就有了下文.

方法一: 使用UIToolBar

UIToolBar有四种style: defalt(UIBarStyleDefault (blue)), black, blackTranslucent, blackOpaque; 默认是default, 后两者已经过时了.

代码:

let view = UIView(frame: CGRect(x: 0, y: 200, width: SCREEN_WIDTH, height: 44))
view.backgroundColor = UIColor.clear
let toolBar = UIToolbar(frame: CGRect(x: 0, y: 0, width: SCREEN_WIDTH, height: 44))
toolBar.barStyle = .default
view.addSubview(toolBar)
弊端: 1. 固定高度44px, 不可改变; 2. 顶部有0.5像素高度的黑线, 如果不需要, 需要手动去掉.

方法二: 使用UIVisualEffectView

通过UIBlurEffect设置style, 有四种: extraLight, light, dark, regular, prominent, 后两者要求10.0以后才可以使用;

代码:

let effect = UIBlurEffect(style: .extraLight)
let visualEffectView = UIVisualEffectView(effect: effect)
visualEffectView.frame = CGRect(x: 0, y: 200, width: SCREEN_WIDTH, height: 100)
self.view.addSubview(visualEffectView)
弊端: 只支持8.0及以上版本, 如果想兼容8.0以下版本, 请使用UIToolBar.
显示全文