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

【IOS开发基础系列】UISearch专题

(当搜索内容为空时,返回的时所有数据,如果搜索内容为空,返回空时,需要进行其它修改操作.) 4 开发技巧 4.1 兼容IOS7、8并结合自定义导航条使用 4.1.1 核心思路         虽然UISearchController...中也有Search bar变量,但是此界面中的Search bar必须自己新建定义,不能通过重用UISearchController....此界面中的Search bar只用于触发搜索操作,从而显示UISearchController页面。        ...使用时注意:在searchBarTextDidBeginEditing事件中必须将当前子视图上移44px(即移到导航条中),以便达到让用户觉得UISearchController界面中的Search bar...而用户退出UISearchController界面时,同样要记得重新设置此界面的布局,以便让用户觉得此Search bar是UISearchController界面中下移下来的。

58920
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    iOS 问题总结(五)

    1.在 swift 工程中 使用 cocoapods 导入第三方库后出现 no such module afnetworking 错误 解决办法: 这是swift项目,在Podfile文件中加入“use_frameworks...使用 cocoapods 时,编译报错 在 Building Setting 中的Other Linker Flags 中检查是不是为空了,如果是那么添加一句 $(inherited),再重新编译就不会报错了...3.使用 UISearchController 遇到的问题: 我自定义了一个 HeaderView,如下图: ?...,苹果开发中心的demo中的对这行代码,注释如下 // know where you want UISearchController to be displayed 如果不添加上面这行代码,在设置 hidesNavigationBarDuringPresentation...这个属性为YES的时候,搜索框进入编辑模式会导致,搜索栏不可见,偏移 -64 ;在设置为 NO 的时候,进入编辑模式输入内容会导致高度为 64 的白条,猜测是导航栏没有渲染出来。

    1.6K10

    自定义UISearchController的外观

    以前我们在项目中使用搜索框的时候,如果用系统自带的控件则是使用UISearchDisplayController,而自从iOS8之后,系统重新给我们提供了一个搜索控件:UISearchController...在UISearchController中我们无需再自己初始化UISearchBar,只需要提供searchResult展示的视图。...,代码中充斥着各种写好的UISearchBar的展示,而改动底层框架并不是一个较好地实践。...获取子View 我们在UISearchController或者是UISearchDisplayController中都可以直接获取到UISearchBar的实例,我们可以从这里改变一些UISearchBar...一定要确保cancelButton包含在了UISearchBar中,必要时可以提前调用: [_searchController.searchBar setShowsCancelButton:YES animated

    1.7K20

    NavigationBar&tabBar调色那些事儿1. 导航栏调色那些事儿2. 标签栏TableBar那些事儿

    blueColor]; 1.2 改变 NavigationBar 的字体颜色 NavigationBar 上面有两处可以改变字体颜色,一是标题,二是左右按钮的文字。...方法一: 在 Info.plist 中的 Information Property List 中添加一个 Key为View controller-based status bar appearance的...item,其 Type 设为 Boolean,Value 设为 NO 方法二: 然后在AppDelegate.mapplication:didFinishLaunchingWithOptions:中添加突下设置...sharedApplication].statusBarStyle = UIStatusBarStyleLightContent; 1.6 隐藏 StatusBar 有时候为了实现沉浸式设计,比如 app 首次打开的引导页...,需要隐藏整个 StatusBar,方法如下: 状态栏的高度是20 方法一: 和改变 StatusBar 颜色一样,在 Info.plist 中的 Information Property List 中添加一个

    1.5K50

    编码篇-iOS开发中的奇巧小伎

    修改UISegmentedControl的字体大小 17.获取一个view所属的控制器 18.UIImage和base64互转 19.检查一个rect是否包含一个point 20.UITextView中打开或禁用复制...33、获取手机RAM容量 34、在UITextView中显示html文本 35、选中textField或者textView所有文本(我这里以textView为例) 36、隐藏UITextView/UITextField...光标 37、当UITextView/UITextField中没有文字时,禁用回车键 38、通知监听APP生命周期 39、获取collectionViewCell在屏幕中的frame 40、UITextField...内 BOOL isContains = CGRectContainsPoint(rect, point); 20.UITextView中打开或禁用复制,剪切,选择,全选等功能 // 继承UITextView...36、隐藏UITextView/UITextField光标 textField.tintColor = [UIColor clearColor]; 37、当UITextView/UITextField中没有文字时

    5.4K10

    你可能需要为你的 APP 适配 iOS 11

    在UIKit’s Bars中加入的新功能 WWDC通过iOS新增的文件管理App:Files开始介绍,在Files这个APP中能够看到iOS11中UIKit’s Bars的一些新特性:在浏览功能上的大标题视图...bar就会在整个APP中显示大标题,如果想要在控制不同页面大标题的显示,可以通过设置当前页面的navigationItem的largeTitleDisplayMode属性; typedef NS_ENUM...UIToolbar and UINavigationBar— Layout 在 iOS 11 中,当苹果进行所有这些新特性时,也进行了其他的优化,针对 UIToolbar 和 UINavigaBar 做了新的自动布局扩展支持...安全区域(Safe Area) 如图:照片应用程序 ?...在测试Demo中,创建tableView到显示出来的过程中,contentSize的计算过程如下图: ?

    1.7K60

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

    一 在UIKit’s Bars中加入的新功能 WWDC通过iOS新增的文件管理App:Files开始介绍,在Files这个APP中能够看到iOS11中UIKit’s Bars的一些新特性:在浏览功能上的大标题视图...bar就会在整个APP中显示大标题,如果想要在控制不同页面大标题的显示,可以通过设置当前页面的navigationItem的largeTitleDisplayMode属性; Navigation...集成 UISearchController 把你的UISearchController赋值给navigationItem,就可以实现将UISearchController集成到Navigation。...UIToolbar and UINavigationBar— Layout 在 iOS 11 中,当苹果进行所有这些新特性时,也进行了其他的优化,针对 UIToolbar 和 UINavigaBar 做了新的自动布局扩展支持...在测试Demo中,创建tableView到显示出来的过程中,contentSize的计算过程如下图: Self-Sizing在iOS11下是默认开启的,Headers, footers, and cells

    82920

    Android全面屏适配指南

    1.86(即16:9),小于全面屏手机的宽高比,因此在全面屏手机上打开没有适配全面屏的App时,上下就会显示空白空间。...当然,max_aspect值也支持在Java代码中动态地设置。...例如,有些手机系统有NavigationBar,有些手机没有,还有则是在设置增加开关,让用户选择是否启用NavigationBar。...当然,也可以在【设置】面板中来手动打开或关闭虚拟导航键,并且部分手机还支持使用手势来开启和关闭导航键。 那么,对于开发者来说,怎么知道是否开启了虚拟导航键呢,又如何进行适配呢?...如果你在activity的onCreate()方法中隐藏系统栏,当用户按下home键系统栏就会重新显示。当用户再重新打开activity的时候,onCreate()不会被调用,所以系统栏还会保持可见。

    2.1K30

    小程序自定义单页面、全局导航栏

    ": "/components/navigationBar/navigationBar" } } 两者的区别就是,全局配置放在app.json文件里,单页面配置放在自定义页面配置文件里。...二、实现的步骤 以下说下几个要点: 1、自定义导航栏文本,是否显示返回,是否显示返回首页,导航栏高度 2、statusBarHeight,用来获取手机状态栏的高度,这个需要在全局app.js中的onLaunch...,调用wx.getSystemInfo获取,navigationBarHeight+默认的高度,这个是设定整个导航栏的高度, 3、还有注意的,在写样式距离和大小时建议都用px,因小程序右边的胶囊也是用的...首先可以在app.js里面获取下当前用户的微信版本,做下版本比较,如果小于这个版本,设置个全局变量,也可以在组件写个方法,在不同的页面打开显示不同的顶部导航栏,或者可以控制是否显示导航栏,这里就不详细说了...还有底部tabbar,可自己选择配置的太少了,虽然也支持自定义,但是发现自定义写的底部导航组件体验并不好,每次打开页面都会重新渲染底部的按钮,如果全部写成在一个页面里的tab切换,虽然按钮每次不用重新加载了

    2.1K20

    iOS开发——UINavigationBar中踩过的坑

    这段时间的一直在忙于编码,加上国庆假期等等时间,又有很长时间没有写过博客了。 自从升级了Xcode8,以及在做iOS10的适配工作中,我发现在NavigationBar这个控件中,有了一个小小的坑。...因为在iOS7之后,NavigationBar之后,默认有一条1px的细线,这条细线怎么去,我在这里就不赘述了,因为谷歌上以及StackOverflow上有太多的方法去除这条细线。...但是我这次发现,在我升级到iOS10之后,iOS10的设备中虽然使用了以前的方法,但是还是出现了这个细线,但是iOS10以下的设备这条细线还是不存在的。...于是我自己得出了这么个结论,之前去除NavigationBar的这条细线的方法失效了(这里并不是说所有方法失效,至少我使用的方法是失效的),那么在发现自己有这个问题的时候,不妨可以来换一种方法实现隐藏NavigationBar...头文件中的方法声明 /** * NavigationBar底部隐藏1px的线 */ - (void)lix_hideBottomHairline; /** * NavigationBar底部显示

    93730

    实践-小效果 Ⅰ

    的话,在代理中再改变  self.HeadImgView的 frame  就会出现下拉时上面出现空白的情况。...个像素,如果是整个项目都做完之后使用这种方法隐藏的话需要修改全局 试图的  Y坐标起始点是 0 而不是原来的64 ,所以建议 设置一个全局的宏定义 NAVHEIGHT 导航条的高度,来随时更改,更可控更方便...:alertControlleranimated:YEScompletion:nil]; } [self.collection reloadData]; } 7.类似滴滴打车软件中左边侧滑时动态隐藏...这时view controller中对status bar的设置优先级高于application的设置,用下面的方式隐藏status bar: 1、在view controller中调用setNeedsStatusBarAppearanceUpdate...ios-sim 是一个可以在命令控制iOS模拟器的工具。利用这个命令,我们可以启动一个模拟器,安装app,启动app,查询iOS SDK。它可以使我们像自动化测试一样不用打开Xcode。

    1.2K30

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

    一、在UIKit’s Bars中加入的新功能 WWDC通过iOS新增的文件管理App:Files开始介绍,在Files这个APP中能够看到iOS11中UIKit’s Bars的一些新特性:在浏览功能上的大标题视图...bar就会在整个APP中显示大标题,如果想要在控制不同页面大标题的显示,可以通过设置当前页面的navigationItem的largeTitleDisplayMode属性; 3、Navigation...集成 UISearchController 把你的UISearchController赋值给navigationItem,就可以实现将UISearchController集成到Navigation。...5、UIToolbar and UINavigationBar— Layout 在 iOS 11 中,当苹果进行所有这些新特性时,也进行了其他的优化,针对 UIToolbar 和 UINavigaBar...在测试Demo中,创建tableView到显示出来的过程中,contentSize的计算过程如下图: Self-Sizing在iOS11下是默认开启的,Headers, footers, and cells

    2.5K00

    iOS系统中导航栏的转场解决方案与最佳实践

    虽然在 push 过程中,NavigationBar 的变化听起来合情合理,但如果你在 NavigationBar 为绿色的 ViewController 里设置不当的话,那么当你 pop 回这个 ViewController...时,NavigationBar 可就不一定是绿色了,它还会保持为紫色的状态。...掌握了原理,我们来解释下刚才的两种现象: 在第一种实现中,我们提供的 indicatorTransitionMaskImage 覆盖了整个返回按钮的图标,所以我们在转场过程中可以清晰的看到返回按钮的文字...在转场的过程中隐藏原有的导航栏并添加假的 NavigationBar,当转场结束后删除假的 NavigationBar 并恢复原有的导航栏,这一过程可以通过 Swizzle 的方式完成,而每个 ViewController...当页面的层级结构大体如下所示时,在红色导航栏的 Stack 中,返回手势会大概率的出现跨层级的跳转,多次后会导致整个导航栏的 Stack 错乱或者 Crash。 ?

    2.4K30

    iOS透明导航栏的平滑过渡(进阶版)引实现过程结

    引 如我在传送门:iOS导航栏切换界面时隐藏和显示中所说,现在很多App的个人中心模块都是不保留导航栏的,会直接使导航栏透明,比如做的很好的QQ个人信息界面: 为什么说QQ做的很好呢?...,感兴趣的可以打开手机QQ到个人界面看一看,效果很赞。...而很多App的做法其实比较粗糙,类似于我在传送门:iOS导航栏切换界面时隐藏和显示中的做法,需要导航栏透明时,直接将导航栏隐藏起来。...直接隐藏起来的意思是,整个导航栏就用不了了,也就是说,标题、返回按钮等都需要自己去做,这是一个比较麻烦的地方,此外,在有无导航栏的界面间切换时,过程是比较生硬的,导航栏不是渐变出现的。...的 Delegate 中添加一个处理,监控松手后时自动完成返回还是取消返回操作,同时使用 UIView 动画(关于 UIView 动画可以看我的这篇文章:传送门:iOS基础动画教程),在自动操作的那个时间内将透明度变为对应界面的导航栏透明度

    3.1K40

    【Web技术】850- 深入了解页面生命周期API

    每个前端开发人员都应该知道的浏览器API 作为用户,我们在浏览网页时总喜欢一心多用。因此,打开多个浏览器标签页是很常见的,因为这有助于并行完成事情。...由于不可能限制用户打开新的浏览器标签页并将其留下,因此浏览器采取了一些措施,以在浏览器标签页不活动时重新分配资源。...这里最重要的是确定当应用程序达到每个状态时,哪些需要保留,哪些需要停止。 ACTIVE状态--由于用户在页面上是完全活跃的,所以你的网页应该完全响应用户的输入。...因此,任何可能的丢弃的准备工作都应该在隐藏或冻结状态下进行。然而,你可以在页面加载时通过检查document.wasDiscarded来对页面的任何恢复做出反应。...好了,现在我们知道在每个状态下要做什么了,让我们看看如何在我们的应用程序中捕获每个状态。 如何在代码中捕获生命周期状态?

    1.3K20

    IOS开发之TabBarItem&NavigationBarItem

    视图关系说明:     1.当打开时首先会出现一个登陆页面,当登陆成功后会跳转到Tab Bar Controller中。     ...1.登陆页面的的跳转实现     在登陆ViewController中要跳转到TabBarController中需要根据用户输入的信息来实现跳转。...其实在我们storyboard中还是蛮简单的,在storyboard选择我们要关联的视图控制器,在 Class中选中我们新建的视图控制器类即可。...接下来会为每个导航控制器配置NavigateBar, 在一个NavigationController中只有一个NavigationBar, 而在一个NavigationController下的各个ViewController...在我们的storyboard中只需要把Hide Bottom Bar on push选中即可,选中之后我们切换到该页面时,就不会显示Tab Bar了,如下图所示。 ?

    1.4K80

    iOS 11 安全区域适配总结

    原因分析 原因是iOS 11中Controller的automaticallyAdjustsScrollViewInsets属性被废弃了,所以当tableView超出安全区域时系统自动调整了SafeAreaInsets...值,进而影响adjustedContentInset值,在iOS 11中决定tableView的内容与边缘距离的是adjustedContentInset属性,而不是contentInset。...安全区域是iOS 11新提出的,如下图所示: 安全区域帮助我们将view放置在整个屏幕的可视的部分。...SafeAreaInsets值为0时,是正常的情况。 需要了解每个页面的结构,看tableView是否被系统的statusbar或navigationbar覆盖,如果被覆盖的话,则会发生下移。...查了下页面结构,tableView的父视图的frame在navigationbar的bottom之下,tableView在父视图的安全区域内,打印出来tableView的SafeAreaInset值也是

    4.9K20

    原 Intellij IDEA 2017

    当你第一次运行Intellij IDEA或者没有打开项目时,Intellij IDEA显示欢迎页面,以便能够快速的切入到主要的起始点中去。当一个项目被打开时,会展示主窗体。...导航栏:帮你导航项目和打开那些你想编辑的文件 状态栏:标示项目、整个IDE的状态,以及展示警告信息。 编辑器:这里是你可创建和更改你的代码。...此外,在一些项目的特殊部分(源码文件,class等等)中,还有一些上下文相关的弹出式菜单执行命令,大多数命令都有相关的快捷键以便你能快速的执行它。...全屏模式 此模式下允许你在全屏模式编码。该模式下移除了所有的菜单,不过你可以使用语境菜单和快捷键。当你将鼠标移动到屏幕顶部时,主菜单将变得可用。...在打开对话框中选择特殊的图片,透明度,填充类型,应用位置,所有项目或者只是当前项目。 ? 如果背景图片已经被选择,在工具窗语境下的菜单中也可以做下面操作。 ? 在图片编辑器下: ?

    2.8K60

    iOS 11 安全区域适配总结

    原因分析 原因是iOS 11中Controller的automaticallyAdjustsScrollViewInsets属性被废弃了,所以当tableView超出安全区域时系统自动调整了SafeAreaInsets...值,进而影响adjustedContentInset值,在iOS 11中决定tableView的内容与边缘距离的是adjustedContentInset属性,而不是contentInset。...安全区域帮助我们将view放置在整个屏幕的可视的部分。...SafeAreaInsets值为0时,是正常的情况。 需要了解每个页面的结构,看tableView是否被系统的statusbar或navigationbar覆盖,如果被覆盖的话,则会发生下移。...查了下页面结构,tableView的父视图的frame在navigationbar的bottom之下,tableView在父视图的安全区域内,打印出来tableView的SafeAreaInset值也是

    1.8K100
    领券