热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

iOSUISearchBar修改placeholder字体颜色和大小

在修改searchBar上面的placeholder字体颜色时,我自己手写的代码跟正确的一模一样时,它识别不出来,总是崩,错误内容说是没有那个value,真是见鬼了。当我粘贴过来时,它

在修改searchBar上面的placeholder字体颜色时,我自己手写的代码跟正确的一模一样时,它识别不出来,总是崩,错误内容说是没有那个value,真是见鬼了。当我粘贴过来时,它就好了。爱,真是那个什么了………………

 self.searchBar = [[UISearchBar alloc]initWithFrame:CGRectMake(20 , 20, kUISCREEN_WIDTH - 40, 30)];
_searchBar.placeholder = @"个合格";
_searchBar.tintColor = [UIColor whiteColor];
_searchBar.translucent = YES;
_searchBar.layer.masksToBounds = YES;
_searchBar.layer.cornerRadius = 5.0;
_searchBar.alpha = 0.2;
//添加背景图,可以去掉外边框的灰色部分
[_searchBar setBackgroundImage:[UIImage new]];
[_searchBar setTranslucent:YES];

//这个枚举可以对searchBar进行修改
_searchBar.searchBarStyle = UISearchBarStyleProminent;
//之前的效果,如下面的第一个效果图
//加上如下命令效果如下
searchBar.barTintColor = [UIColor whiteColor];
//给searchBar中的textField添加背景图
[_searchBar setSearchFieldBackgroundImage:[UIImage imageNamed:@"backgroundImage"] forState:UIControlStateNormal];
//一下代码为修改placeholder字体的颜色和大小
UITextField * searchField = [_searchBar valueForKey:@"_searchField"];
[searchField setValue:[UIColor redColor] forKeyPath:@"_placeholderLabel.textColor"];
[searchField setValue:[UIFont boldSystemFontOfSize:16] forKeyPath:@"_placeholderLabel.font"];
[topBackImageView addSubview:self.searchBar];

//之前的效果
这里写图片描述
//之后的效果
这里写图片描述

其他:

#import "ViewController.h"

@interface ViewController ()<UISearchBarDelegate>

@property(nonatomic, strong)UISearchBar * searchBar;
@end

@implementation ViewController

- (void)viewDidLoad {
[super viewDidLoad];

self.searchBar = [[UISearchBar alloc]initWithFrame:CGRectMake(20, 80, 300, 50)];
//默认白色搜索框,多出的背景为灰色;UIBarStyleDefault 默认 UIBarStyleBlack背景为黑色
_searchBar.barStyle = UIBarStyleDefault;
//设置搜索框整体的风格为不显示背景,默认为Prominent显示
_searchBar.searchBarStyle = UISearchBarStyleDefault;
//设置搜索框的文字
_searchBar.text = @"搜索框";
//显示在searchBar顶部的一行文字
// _searchBar.prompt = @"prompt";
//占位符
_searchBar.placeholder = @"占位符";
//设置搜索框中的光标的颜色为黄色
_searchBar.tintColor = [UIColor yellowColor];
//设置搜索框的背景颜色
_searchBar.barTintColor = [UIColor redColor];
//设置是否透明
_searchBar.translucent = YES;

_searchBar.showsCancelButton = YES;
_searchBar.showsBookmarkButton = YES;

//设置搜索框textField的位置,其他控件位置不改变
_searchBar.searchFieldBackgroundPositionAdjustment = UIOffsetMake(50, 0);
//设置textField里面文字在field中的位置
_searchBar.searchTextPositionAdjustment = UIOffsetMake(50, 0);

//自定义搜索框放大镜的图标
[_searchBar setImage:[UIImage imageNamed:@"1"] forSearchBarIcon:UISearchBarIconSearch state:UIControlStateNormal];

//设置bookMark图标的设置
[_searchBar setImage:[UIImage imageNamed:@"2"] forSearchBarIcon:UISearchBarIconBookmark state:UIControlStateNormal];

_searchBar.delegate = self;

[self.view addSubview:self.searchBar];

}
#pragma mark - UISearchBarDelegate
/*
调用BookmarkButton的点击方法,需要先设置showsBookmarkButton = YES,并且showsSearchResultsButton 不能同时设置为yes,否则不会显示BookmarkButton,导致无法调用方法
//是否在搜索框右侧显示一个图书的按钮,默认为NO,
_searchBar.showsBookmarkButton = YES;

调用ResultsListButton的点击方法,设置showsSearchResultsButton = YES;
//当搜索框将要开始使用时调用。yes表示搜索框可以使用,默认为yes否则搜索框无法使用
_searchBar.showsSearchResultsButton = YES;
*/

- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar{
NSLog(@"ShouldBegin");
return YES;
}
//当搜索框开始编辑时候调用
- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar{
NSLog(@"DidBegin");

}
//当搜索框将要将要结束使用时调用。
- (BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar{
NSLog(@"ShouldEnd");

return YES;
}
//当搜索框结束编辑时候调用
- (void)searchBarTextDidEndEditing:(UISearchBar *)searchBar{
NSLog(@"DidEnd");
}

//当field里面内容改变时候就开始掉用。
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText{
NSLog(@"DidChange");
if(searchText != nil && searchText.length > 0){
[self.searchDataAry removeAllObjects];
for (SearchModel * model in self.originAry) {
if ([model.shop_name rangeOfString:searchText options:NSCaseInsensitiveSearch].length > 0) {
[self.searchDataAry addObject:model];
}
}
[self.tableView reloadData];
}else{
self.searchDataAry = [NSMutableArray arrayWithArray:self.originAry];
[self.tableView reloadData];
}


}
//在field里面输入时掉用,询问是否允许输入,yes表示允许,默认为yes,否则无法输入
- (BOOL)searchBar:(UISearchBar *)searchBar shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
NSLog(@"shouldChange");
return YES;
}
//点击SearchButton调用
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar{
NSLog(@"SearchButtonClicked");
}
//点击BookmarkButton调用
- (void)searchBarBookmarkButtonClicked:(UISearchBar *)searchBar {
NSLog(@"BookmarkButtonClicked");

}
//点击CancelButton调用
- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar {
NSLog(@"CancelButton");
}
//点击ResultsListButton调用
- (void)searchBarResultsListButtonClicked:(UISearchBar *)searchBar{
NSLog(@"ResultsListButton");
}


推荐阅读
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • 分享一款基于Java开发的经典贪吃蛇游戏实现
    本文介绍了一款使用Java语言开发的经典贪吃蛇游戏的实现。游戏主要由两个核心类组成:`GameFrame` 和 `GamePanel`。`GameFrame` 类负责设置游戏窗口的标题、关闭按钮以及是否允许调整窗口大小,并初始化数据模型以支持绘制操作。`GamePanel` 类则负责管理游戏中的蛇和苹果的逻辑与渲染,确保游戏的流畅运行和良好的用户体验。 ... [详细]
  • 在Java项目中,当两个文件进行互相调用时出现了函数错误。具体问题出现在 `MainFrame.java` 文件中,该文件位于 `cn.javass.bookmgr` 包下,并且导入了 `java.awt.BorderLayout` 和 `java.awt.Event` 等相关类。为了确保项目的正常运行,请求提供专业的解决方案,以解决函数调用中的错误。建议从类路径、依赖关系和方法签名等方面入手,进行全面排查和调试。 ... [详细]
  • 在 Vue 应用开发中,页面状态管理和跨页面数据传递是常见需求。本文将详细介绍 Vue Router 提供的两种有效方式,帮助开发者高效地实现页面间的数据交互与状态同步,同时分享一些最佳实践和注意事项。 ... [详细]
  • ButterKnife 是一款用于 Android 开发的注解库,主要用于简化视图和事件绑定。本文详细介绍了 ButterKnife 的基础用法,包括如何通过注解实现字段和方法的绑定,以及在实际项目中的应用示例。此外,文章还提到了截至 2016 年 4 月 29 日,ButterKnife 的最新版本为 8.0.1,为开发者提供了最新的功能和性能优化。 ... [详细]
  • 微信小程序实现类似微博的无限回复功能,内置云开发数据库支持
    本文详细介绍了如何利用微信小程序实现类似于微博的无限回复功能,并充分利用了微信云开发的数据库支持。文中不仅提供了关键代码片段,还包含了完整的页面代码,方便开发者按需使用。此外,HTML页面中包含了一些示例图片,开发者可以根据个人喜好进行替换。文章还将展示详细的数据库结构设计,帮助读者更好地理解和实现这一功能。 ... [详细]
  • DRF框架中Serializer反序列化验证机制详解:深入探讨Validators的应用与优化
    在DRF框架的反序列化验证机制中,除了基本的字段类型和长度校验外,还常常需要进行更为复杂的条件限制校验。通过引入`validators`模块,可以实现自定义校验逻辑,如唯一字段校验等。本文将详细探讨`validators`的使用方法及其优化策略,帮助开发者更好地理解和应用这一重要功能。 ... [详细]
  • 使用 ListView 浏览安卓系统中的回收站文件 ... [详细]
  • 优化后的标题:深入探讨网关安全:将微服务升级为OAuth2资源服务器的最佳实践
    本文深入探讨了如何将微服务升级为OAuth2资源服务器,以订单服务为例,详细介绍了在POM文件中添加 `spring-cloud-starter-oauth2` 依赖,并配置Spring Security以实现对微服务的保护。通过这一过程,不仅增强了系统的安全性,还提高了资源访问的可控性和灵活性。文章还讨论了最佳实践,包括如何配置OAuth2客户端和资源服务器,以及如何处理常见的安全问题和错误。 ... [详细]
  • 通过使用 `pandas` 库中的 `scatter_matrix` 函数,可以有效地绘制出多个特征之间的两两关系。该函数不仅能够生成散点图矩阵,还能通过参数如 `frame`、`alpha`、`c`、`figsize` 和 `ax` 等进行自定义设置,以满足不同的可视化需求。此外,`diagonal` 参数允许用户选择对角线上的图表类型,例如直方图或密度图,从而提供更多的数据洞察。 ... [详细]
  • 在处理 XML 数据时,如果需要解析 `` 标签的内容,可以采用 Pull 解析方法。Pull 解析是一种高效的 XML 解析方式,适用于流式数据处理。具体实现中,可以通过 Java 的 `XmlPullParser` 或其他类似的库来逐步读取和解析 XML 文档中的 `` 元素。这样不仅能够提高解析效率,还能减少内存占用。本文将详细介绍如何使用 Pull 解析方法来提取 `` 标签的内容,并提供一个示例代码,帮助开发者快速解决问题。 ... [详细]
  • 本文探讨了如何利用Java代码获取当前本地操作系统中正在运行的进程列表及其详细信息。通过引入必要的包和类,开发者可以轻松地实现这一功能,为系统监控和管理提供有力支持。示例代码展示了具体实现方法,适用于需要了解系统进程状态的开发人员。 ... [详细]
  • 本文详细介绍了一种利用 ESP8266 01S 模块构建 Web 服务器的成功实践方案。通过具体的代码示例和详细的步骤说明,帮助读者快速掌握该模块的使用方法。在疫情期间,作者重新审视并研究了这一未被充分利用的模块,最终成功实现了 Web 服务器的功能。本文不仅提供了完整的代码实现,还涵盖了调试过程中遇到的常见问题及其解决方法,为初学者提供了宝贵的参考。 ... [详细]
  • 使用 Vuex 管理表单状态:当输入框失去焦点时自动恢复初始值 ... [详细]
  • 技术日志:使用 Ruby 爬虫抓取拉勾网职位数据并生成词云分析报告
    技术日志:使用 Ruby 爬虫抓取拉勾网职位数据并生成词云分析报告 ... [详细]
author-avatar
寻找冄己靉
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有