最近在项目开发中用到了搜索框,一般是设置在列表顶部或者导航条上。下面说一下在导航条上使用搜索框的思路,刚开始是直接将CCSearchBar添加到导航条,在viewWillDisappear设置隐藏,在viewWillAppear中设置可见,结果在苹果X上出现页面卡顿的情况。原因可能是进入页面的时候获取焦点,

也可能是状态栏高度设置不准确,总之这个方案会有点问题。我们换另外一个思路,将导航条设置为titleview,这里需要特别注意,如果直接将CCSearchBar赋值给self.navigationItem.titleView,搜索框的长度会不受控制,需要封装一层,将搜索框添加到一个view中,然后将该view赋值给titleview。

  

- (CCSearchBar *)searchBar{

if (!_searchBar) {

_searchBar = [[CCSearchBar alloc]init];

_searchBar.backgroundColor = [UIColor clearColor];

_searchBar.textfiledBgColor = K_CC_GRAY_BG_COLOR;

_searchBar.placeholder = K_CC_LOCAL_STR(@"home.search");

_searchBar.placeHolderFontSize = 14;

_searchBar.placeHolderTextColor = K_CC_TEXT_GRAY_COLOR;

_searchBar.textPosition = SearchBarTextPositionCenter;

_searchBar.textColor = K_CC_COLOR_STRING(@"17315C");

_searchBar.frame = CGRectMake(0, 5, K_CC_SCREEN_WIDTH-146, 34);

_searchBar.delegate = self;

}

return _searchBar;

}

- (UIView *)toolSearch

{

if (!_toolSearch) {

_toolSearch=[[UIView alloc]initWithFrame:CGRectMake(0, 0, K_CC_SCREEN_WIDTH - 106, 44)];

_toolSearch.backgroundColor =  [UIColor clearColor];

[_toolSearch addSubview:self.searchBar];

}

return _toolSearch;

}

self.navigationItem.titleView=self.toolSearch;

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.6 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{

[self.searchBar becomeFirstResponder];

});

iOS中在导航条设置搜索框使用小结的更多相关文章

  1. jquery控制滚动条改变上面固定(fixed)导航条或者搜索框的属性

    <script type="text/javascript"> $(document).ready(function(){ $(window).scroll( func ...

  2. 【好程序员笔记分享】——iOS开发之使用TextField作为搜索框

    -iOS培训,iOS学习-------型技术博客.期待与您交流!------------ iOS开发之使用TextField作为搜索框     今天给大家带来一个新的技巧,比如平时我们要使用代码创建一 ...

  3. iOS 状态栏和导航条配置

    iOS 状态栏和导航条配置 一:隐藏: [self.navigationController setNavigationBarHidden:YES animated:YES]; [[UIApplica ...

  4. iOS学习之导航条NavigationControl的一些属性设置

    /** * 配置公共的属性,该属性作用于所有的导航条界面; */ - (void)configureConmmonPropety { //1.设置导航条的颜色 self.navigationContr ...

  5. React Native中自定义导航条

    这是2017年年初开始的公司的项目,对于导航条的要求很高,Android和iOS上必须用一致的UI,按钮位置还有各种颜色都有要求,而且要适应各种奇葩要求. 尝试了一下当时React Native自带的 ...

  6. iOS viewController添加导航条以及返回跳转选择

    给单独的viewcontroller或者在Appdelegate的主页面添加导航条,只要在viewcontroller上添加navigationcontroller,在添加此navigationcon ...

  7. iOS改变UINavigationBar导航条标题颜色和字体

    转自:http://www.2cto.com/kf/201311/260409.html iOS 5 以后 UINavigationController 可以 改变UINavigationBar导航条 ...

  8. iOS中UITableView的一些设置

    不可滑动: ? 1 tableView.userInteractionEnabled = NO; 也可以在storyboard中的userInteractionEnable属性设置 显示导向箭头: ? ...

  9. 模拟iOS系统原生导航条隐藏或显示动画

    借UIView动画,使更改导航条的hidden属性这一过程动起来.悦德财富:https://yuedecaifu.com 代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...

  10. 在iOS中,实现点击搜索结果隐藏搜索结果的方法。

    不知道有没有别的什么的好的方法,最近在实现一个需求(点击搜索,然后输入搜索内容,显示搜索出来的结果,然后点击搜索结果,在当前页面显示所点击的结果的详细的信息).遇到的问题是,点击搜索结果的时候,搜索的 ...

随机推荐

  1. RHCA rh442 002 监控工具 脏页 块设备名 缓存

    sar 看某一个时间的数据 sar -d 1 5 与iostat类似 计算机识别设备按编号识别 0-15预留出 8 为iscsi设备 做一个块设备名 名字不重要是给人看的,重要的是编号 8 17(主编 ...

  2. python修改类属性

    python修改类属性 1,当类属性为不可变的值时,不可以通过实例对象去修改类属性 class Foo(object): x = 1.5 foo = Foo() print(foo.x) #输出:1. ...

  3. python中多进程下通信使用管道Pipe与队列 Queue 的区别: Multiprocessing - Pipe vs Queue

    参考: https://stackoverflow.com/questions/8463008/multiprocessing-pipe-vs-queue ====================== ...

  4. 除了Ubuntu以外的Linux系统可以安装Tensorflow/Pytorch的GPU版本吗???

    废话: 平时没事有用到的Linux系统有Centos/Redhat/Ubuntu/UOS/Deepin,其中Ubuntu系统主要是用来工作生产的,UOS就是看看国家队的进展如何,Deepin就是看看民 ...

  5. 7月30日CSP-S模拟赛赛后总结

    7月30日模拟赛赛后总结 \[7月30日 \ \ 模拟赛 \ \ 赛后总结 \\ 2024年7月30日 \\ by \ \ \ hcy \] 洛谷同步:点我 一.做题情况 第一题比赛 \(100pts ...

  6. 2.3.6版本发布!Apache SeaTunnel Zeta引擎迎来新架构!

    Apache SeaTunnel 2.3.6 版本于近日正式发布,社区期待的 SeaTunnel Zeta Master/Worker 新架构.事件通知机制.支持动态编译的transform等新功能和 ...

  7. NuminaMath 是如何荣膺首届 AIMO 进步奖的?

    今年,Numina 和 Hugging Face 合作角逐 AI 数学奥林匹克 (AI Math Olympiad,AIMO) 的首届进步奖.此次比赛旨在对开放 LLM 进行微调,以使其能解决高中难度 ...

  8. CH01_初识C++

    CH01_初识C++ 第一个C++程序 新建项目 新建文件 编写代码 #include <iostream> using namespace std; int main() { cout ...

  9. 瑞芯微-I2S | ALSA基础-3

    针对音频设备,linux内核中包含了两类音频设备驱动框架: OSS:开放声音系统 包含dsp和mixer字符设备接口,应用访问底层硬件是直接通过sound设备节点实现的: ALSA:先进linux声音 ...

  10. python中怎样指定open编码为ansi

    在Python中,当使用open函数打开文件时,可以通过encoding参数来指定文件的编码方式.然而,需要注意的是,Python标准库中的编码并不直接支持名为"ANSI"的编码, ...