最近在项目开发中用到了搜索框,一般是设置在列表顶部或者导航条上。下面说一下在导航条上使用搜索框的思路,刚开始是直接将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. 使用Cython调用CUDA Kernel函数

    技术背景 前面写过一篇关于Cython和C语言混合编程的文章,在Cython中可以使用非常Pythonic的方法去调用C语言中的函数.另外我们也曾在文章中介绍过Python中使用CUDA计算的一种方案 ...

  2. 【Shiro】02 shiro.ini文件分析

    [什么是INI文件?] INI 全称:Initialization File 初始文件 Window系统文件扩展名 Shiro 使用时可以连接数据库,也可以不连接数据库. 当不使用数据库时,需要配置S ...

  3. AI机器人——人形机器人、双足机器人、四足机器人 —— 组成构建有哪些?

    参考: https://www.youtube.com/watch?v=dLELvoFt_iA

  4. 中国的AI领域发展的重大不足 —— 数据缺少,尤其是自然语言领域(NLP)、大模型领域

    全世界公开可用的语言文本中绝大部分是英文文本,其中中文文本只有1.5% 相关: China's Betting Big On Artificial Intelligence. Could The US ...

  5. 《Python数据可视化之matplotlib实践》 源码 第四篇 扩展 第十一章

    图  11.2  import matplotlib.pyplot as plt import matplotlib as mpl import numpy as np plt.axes([0.1, ...

  6. LeetCode 上1769号 面试编程题,python编程

    原题地址: https://leetcode-cn.com/problems/minimum-number-of-operations-to-move-all-balls-to-each-box/ - ...

  7. 【CDQ分治】三元环

    三元环 HDU - 7439 思路 考虑 \(3\) 个点的有向图,要么成环,要么有一个点入度为 \(2\) ,假设第 个点的入度为 \(d_i\),答案为 \(C_n^3-\sum\limits_{ ...

  8. 【A GUIDE TO CRC ERROR DETECTION ALGORITHM】 (译文1)

    A GUIDE TO CRC ERROR DETECTION ALGORITHM (译文) <A PAINLESS GUIDE TO CRC ERROR DETECTION ALGORITHM& ...

  9. redis-cli命令行工具使用

    redis 6.2.8 1.连接 ./redis-cli -h 127.0.0.1 -p 6379 -a admin@2020 -h redis主机地址 -a redis密码 -p redis端口 2 ...

  10. Linux-centos中修改默认root帐户的登录用户名

    vi /etc/passwd 按i键进入编辑状态 修改第1行第1个root为新的用户名 按esc键退出编辑状态,并输入:x保存并退出 vi /etc/shadow 按i键进入编辑状态 修改第1行第1个 ...