iOS UISearchBar 属性、方法详解及应用(自定义搜索框样式)

本文主要介绍内容分为以下三个部分:


  1. UISearchBar 的属性

  2. UISearchBar 的方法

  3. 自定义 UISearchBar 的样式


1. UISearchBar 的属性


介绍之前先说一下 UISearchBar 的初始化方法:UISearchBar 是 UIView 的子类,它的初始化方法有三种:


- (instancetype)init 

- (instancetype)initWithFrame:(CGRect)frame 

- (nullable instancetype)initWithCoder:(NSCoder *)aDecoder 


这三个初始化方法是我们常见的初始化 UIView 以及它的子类的方法,比较常见,而且也不是介绍重点,所以这里不展开说明。


1.1 搜索框风格


  • 属性


// 搜索框风格

@property(nonatomic) UIBarStyle barStyle;


UIBarStyle 有四种枚举值,但后两种已经禁用。


typedef NS_ENUM(NSInteger, UIBarStyle) {

    UIBarStyleDefault         //白色搜索框,灰色背景

    UIBarStyleBlack           //黑色搜索框,

    

    UIBarStyleBlackOpaque      = 1, // 禁用. Use UIBarStyleBlack

    UIBarStyleBlackTranslucent = 2, // 禁用. Use UIBarStyleBlack and set the translucent property to YES

}


  • 效果图:



UIBarStyleDefault 样式



UIBarStyleBlack样式


1.2 搜索的文本、搜索框顶部的提示信息、占位符


  • 属性


 // 搜索的文本

@property(nullable,nonatomic,copy)   NSString *text;  

 // 搜索框顶部的提示信息 

@property(nullable,nonatomic,copy)   NSString *prompt;    

// 占位符,默认nil, 若有值则在输入文本后消失

@property(nullable,nonatomic,copy)   NSString *placeholder;  


  • 效果图:



prompt 和 placeholder



输入文本为 text 后 placeholder 消失


1.3 搜索框右侧的按钮


  • 属性


// 搜索框右侧是否显示图书按钮 

@property(nonatomic)  BOOL showsBookmarkButton;   

//搜索框右侧是否显示取消按钮 

@property(nonatomic) BOOL showsCancelButton;  

//搜索框右侧是否显示搜索结果按钮   

@property(nonatomic) BOOL showsSearchResultsButton; 

// 搜索结果按钮为选中状态

@property(nonatomic, getter=isSearchResultsButtonSelected) BOOL searchResultsButtonSelected;

以上四个属性的默认值都是 NO


  • 效果图:



showsBookmarkButton = YES 效果



showsCancelButton = YES 效果



showsSearchResultsButton = YES 效果



searchResultsButtonSelected = YES 效果,要结合showsSearchResultsButton = YES使用


1.4 风格颜色、背景颜色


  • 属性


// 风格颜色,可用于修改输入框的光标颜色,取消按钮和选择栏被选中时候都会变成设置的颜色

@property(null_resettable, nonatomic,strong) UIColor *tintColor;

// 搜索框背景颜色

@property(nullable, nonatomic,strong) UIColor *barTintColor;


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值