您好,欢迎来到知库网。
搜索
您的当前位置:首页#iOS Dev.#UINavigationController

#iOS Dev.#UINavigationController

来源:知库网

导航栏透明渐变

一般导航栏透明渐变需求都会是在有TableView或者ScrollView的页面进行,此时该如何对这些视图进行布局才能避免在代码中因为tabBar和navigationBar的高度影响而写一些判断逻辑呢?

针对以上问题需要了解清楚以下几个属性:

// 布局相关API
@property (nonatomic,assign) UIRectEdge edgesForExtendedLayout NS_AVAILABLE_IOS(7_0); // Defaults to UIRectEdgeAll
@property (nonatomic,assign) BOOL extendedLayoutIncludesOpaqueBars NS_AVAILABLE_IOS(7_0); // Defaults to NO, but bars are translucent by default on 7_0. 
@property (nonatomic,assign) BOOL automaticallyAdjustsScrollViewInsets NS_AVAILABLE_IOS(7_0); // Defaults to YES
// tabBar和navigationBar的半透明属性相关API
@property (nonatomic, getter=isTranslucent) BOOL trancslucent NS_AVAILABLE_IOS(7_0);

注意:

  1. - (void)viewDidLoad方法中得到的frame始终为显示屏幕的frame,当我们需要对页面进行布局时正确的方式是在- (void)viewWillLayoutSubviews中处理,此方法中控制器view的frame才会受以上属性影响。
  2. 若控制器是由Storyboard或者xib加载出来,需注意右侧Utilities面板Attributes inspector菜单下View Controller对应的属性是否已经设置。

参考来源:

Copyright © 2019- zicool.com 版权所有 湘ICP备2023022495号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务