首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在iOS 11中将项目后面的subView添加到UINavigationBar

在iOS 11中,可以通过以下步骤将项目后面的subView添加到UINavigationBar:

  1. 首先,获取到当前的UINavigationBar实例。可以通过以下代码获取:
代码语言:txt
复制
if let navigationBar = self.navigationController?.navigationBar {
    // 在这里进行后续操作
}
  1. 创建并配置你想要添加的subView。可以使用UIKit中的任何视图类,如UILabel、UIButton等。
代码语言:txt
复制
let subView = UILabel()
subView.text = "Hello World"
subView.textColor = UIColor.white
// 进行其他配置
  1. 将subView添加到UINavigationBar中。在iOS 11中,可以使用UINavigationBar的standardAppearance属性来访问和修改导航栏的外观。
代码语言:txt
复制
if #available(iOS 11.0, *) {
    let appearance = UINavigationBarAppearance()
    appearance.backgroundColor = UIColor.blue // 设置导航栏背景颜色
    appearance.titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.white] // 设置导航栏标题颜色
    
    // 将subView添加到导航栏的后面
    appearance.addSubview(subView)
    
    navigationBar.standardAppearance = appearance
} else {
    // 在iOS 11之前的版本中,可以使用navigationBar的setBackgroundImage方法来设置背景图片
    // 这里省略iOS 11之前的处理逻辑
}

在上述代码中,我们首先创建了一个UINavigationBarAppearance实例,并设置了导航栏的背景颜色和标题颜色。然后,通过appearance.addSubview(subView)将subView添加到导航栏的后面。

需要注意的是,上述代码中的#available(iOS 11.0, *)是一个条件编译指令,用于判断当前设备的iOS版本是否为iOS 11及以上。如果设备的iOS版本低于iOS 11,可以使用传统的方式来设置导航栏的外观。

推荐的腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

IOS开发之视图和视图控制器

UIWindow可以不借助于父类视图显示屏幕上,其余的视图都需要添加到父视图中才能显示。...我们为上面的视图添加一个subView,代码如下: ?         运行效果如下: ?         ...使用是,你通常不必直接UITableBar和UINavigationBar的项,而是通过恰当的控制器接口或Interface Builder来对其进行配置,Table Bar 和 Navigation...本文刚开始的时候我们加入的view的代码都是AppDelegate.m的文件里加的,其实没没那么做的,如果我们一直在上面的文件中实例化我们的各种控件,我们的应用程序代码会非常难维护。...//实例化view并添加到mainView     self.subView = [[UIView alloc] initWithFrame:CGRectMake(50, 50, 100, 150)];

1.7K70

iOS导航栏使用总结

目录: 一、设置导航栏样式 二、解决自定义导航栏返回按钮侧滑不可用问题 三、隐藏导航栏底部的分割线 四、导航栏引起的布局问题 相关文章:iOS状态栏的使用总结 一、设置导航栏样式 设置导航栏的样式可分为全局设置与局部设置...; 1.全局设置 全局设置一般的都是AppDelegate中设置,这样整个app都会生效,相关的代码与效果图如下: //1.设置导航栏背景颜色 [[UINavigationBar appearance...但是此时我们却发现页面的侧滑返回功能不可用了。...: iOS系统的导航栏UINavigationBar与标签栏UITabBar默认都是半透明模糊效果,在这种情况下系统会对视图控制器的UI布局进行优化:视图控制器里面第一个被添加进去的视图是滑动类视图,并且其...失效,所以需要判断 if (@available(iOS 11.0,*)) { scrollView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever

3.1K20

# iOS导航栏控制Tips

比如,当页面用户输入了一些内容,用户要点击返回,想要回到上一个页面时,提醒用户是否要缓存已经输入的内容。 如果我们重写了导航栏的返回按钮,那么处理这种情况就很Easy,不做赘述了。...@implementation UINavigationController (BackItem) // 这个其实是导航栏的协议方法,在这里重写了 - (BOOL)navigationBar:(UINavigationBar...iOS端如果要仿这个效果的话,可以利用导航控制器的API: - (void)setViewControllers:(NSArray *)viewControllers...原始堆栈数组中判断是否存在该类型的控制器,如果存在记录其索引。 复制的数组中将索引及上方所有控制器移除。 把将要push出来的控制器添加到复制的数组中。...或者我们知道将要返回的页面的类型,直接pop回指定页面。 扩展出来的其他方法都在Demo中了,有兴趣的可以看一下。 地址是:HLProject

1.7K31

iOS开发UINavigation系列一——导航栏UINavigtionBar

iOS开发UINavigation系列一——导航栏UINavigtionBar 一、导航栏的使用         iOS开发中,我们通常会使用导航控制器,导航控制器中封装了一个UINavigationBar...,实际上,我们也可以不使用导航控制器的前提下,单独使用导航栏,UINavigationBar中,也有许多我们可以定制的属性,用起来十分方便。...我们也可以设置导航栏的风格属性,从iOS6之后,UINavigationBar默认为半透明的样式,从上面也可以看出,白色的导航栏下面透出些许背景的红色。...三、导航栏常用属性和方法         从上面我们可以看到,iOS6导航栏默认都是半透明的,我们可以通过下面的bool值来设置这个属性,设置为NO,则导航栏不透明,默认为YES: @property...上面不只是简单的显示标题,它也将标题进行了堆栈的管理,每一个标题抽象为的对象iOS系统中是UINavigationItem对象,我们可以通过push与pop操作管理item组。

95131

iOS开发UINavigation系列四——导航控制器UINavigationController

iOS开发UINavigation系列四——导航控制器UINavigationController 一、引言         在前面的博客中,我么你介绍了UINavigationBar,UINavigationItem...前几篇博客地址如下: UINavigationBar:http://my.oschina.net/u/2340880/blog/527706 UINavigationItem:http://my.oschina.net...之后,导航中右划会进行pop操作,设置这个的enable可以控制设置手势是否失效 @property(nullable, nonatomic, readonly) UIGestureRecognizer... *interactivePopGestureRecognizer; 四、iOS8导航的新特性 //这个方法是为了iOS方法的命名统一,导航中,其作用和push一样 - (void)showViewController...UIViewController *)fromVC toViewController:(UIViewController *)toVC ; 六、与UIViewController相关         当一个controller被添加到导航中

1.8K20

IOS开发基础系列】UIView专题

iOS程序启动完毕,创建的第一个视图控件就是UIWindow,接着创建控制器的view,最后将控制器的view添加到UIWindow上,于是控制器的view就显示屏幕上了。...Main函数,执行UIApplicationMain(),根据其第三个和第四个参数创建Application,创建代理,并且把代理设置给application(看项目配置文件info.plist里面的storyboard...ios7里边,主窗口和次窗口是没有区别的。         ios7以前中有区别:哪个是主窗口,后面设置为主窗口会把之前设置的覆盖掉。...参数 subview     被添加做子视图的视图对象 讨论     被子类重写用来执行额外的命令当子视图添加到接收者。...2.该方法调用sizeThatFits被调用,所以可以先调用sizeToFit计算出size。然后系统自动调用drawRect:方法。

39630

你可能需要为你的 APP 适配 iOS11

前言 前几天发现在做的APPiOS11系统上动画有异常,在其他系统的设备上都是正常的,动画的操作是观察tableView的contentOffset变化执行的,异常动画发生在tableView reloadData...一、UIKit’s Bars中加入的新功能 WWDC通过iOS新增的文件管理App:Files开始介绍,Files这个APP中能够看到iOS11中UIKit’s Bars的一些新特性:浏览功能上的大标题视图...5、UIToolbar and UINavigationBar— Layout iOS 11 中,当苹果进行所有这些新特性时,也进行了其他的优化,针对 UIToolbar 和 UINavigaBar...都默认开启Self-Sizing,所有estimated 高度默认值从iOS11之前的 0 改变为UITableViewAutomaticDimension: 如果目前项目中没有使用estimateRowHeight...见下图对比: 总结 大概介绍了iOS 11的UI方面的一些更新,大部分内容都用代码测试过了,有些更新确实是很实用,可以适配下iOS 11,有的更新可能会给现有APP造成bug,所以学习下这些内容还是很有必要的

2.4K00

提升UITableView性能-复杂页面的优化

之前的做的项目,青桔音乐iOS客户端里面的首页就是一个类似微信朋友圈的“动态”页面,大致如下: 青桔动态页面 如果是你,你会怎么实现这个页面呢?...UITableView是可以滑动的,为了不让用户滑动中感到有卡顿,该如何优化?下面,我就写一下我自己在做项目时的“经验”~ 优化 主要分为以下几点: 只定义一种Cell。...如下图定义Cell: Cell示意图 图中的Subview1、Subview2、Subview3就是不同类型Cell的不同之处,所以我们“cellForRowAtIndexPath”函数中,设置Cell...= 首先要确定的是,iOS中,系统会先调用“tableView:heightForRowAtIndexPath:”获取每个Cell即将显示的高度,从而确定整个UITableView的布局。...=(最好放在ViewModel中,就是MVVM模式的),我们的Entity可能就是下面的样子: 1 2 3 4 5 6 7 8 9 10 11 12 13 @interface

99050

你可能需要为你的APP适配iOS11

前言 前几天发现在做的APPiOS11系统上动画有异常,在其他系统的设备上都是正常的,动画的操作是观察tableView的contentOffset变化执行的,异常动画发生在tableView reloadData...一 UIKit’s Bars中加入的新功能 WWDC通过iOS新增的文件管理App:Files开始介绍,Files这个APP中能够看到iOS11中UIKit’s Bars的一些新特性:浏览功能上的大标题视图...UIToolbar and UINavigationBar— Layout iOS 11 中,当苹果进行所有这些新特性时,也进行了其他的优化,针对 UIToolbar 和 UINavigaBar 做了新的自动布局扩展支持...都默认开启Self-Sizing,所有estimated 高度默认值从iOS11之前的 0 改变为UITableViewAutomaticDimension: 如果目前项目中没有使用estimateRowHeight...见下图对比: 总结 大概介绍了iOS 11的UI方面的一些更新,大部分内容都用代码测试过了,有些更新确实是很实用,可以适配下iOS 11,有的更新可能会给现有APP造成bug,所以学习下这些内容还是很有必要的

80320

IOS开发基础系列】UISearch专题

UISearchBar *bar = [[UISearchBar alloc] initWithFrame: CGRectMake(0, 50, self.view.frame.size.width, 80)];  //添加到控制器的视图上...    //9.提示内容     bar.placeholder = @"搜索";     //10.取消键盘操作     [searchBar resignFirstResponder];     //11...另外,要注意表视图的cell重用问题,上下滑动时,下面的cell可能就是用的上面视图的某一个cell,里面数据都没有清空的,要记得全部更新。...,extension中定义属性 //存储原来的数据 @property (nonatomic, retain) NSArray*dataArr; //存储检索的数据 @property (nonatomic...而用户退出UISearchController界面时,同样要记得重新设置此界面的布局,以便让用户觉得此Search bar是UISearchController界面中下移下来的。

28820

iOS屏幕适配概述1 屏幕适配简介2 Autoresizing3 Auto Layout

+ StackView StackView 的核心便是方便垂直或水平排布多个 subview 类似于 android 的 LinearLayout StackView 最有用的就是它会自动为每个 subview...secondItem.secondAttribute * multiplier + constant 注意:如果firstItem.firstAttribute和secondItem.secondAttribute调换位置注意...更改约束,block动画中调用layoutIfNeeded //修改constraints不代表直接改了frame,谁调用此方法,就会让自己及内部所有子控件立即根据constraints 更新 frame...3.不用再给控件设置frame 3.3.2 规则二 1.如果添加的约束和其它控件没有关系, 要添加到自己身上"也可以添加在父控件上" 2.如果是父子关系, 设置子控件的约束, 约束要添加到父控件上 3....如果是兄弟关系, 设置两兄弟的约束, 约束要添加到它们最近的共同父控件上 示例图如下: ?

1.2K30
领券