美文网首页iOS UIKit框架学习
iOS-UIKit框架学习—UISearchBar

iOS-UIKit框架学习—UISearchBar

作者: Wynter_Wang | 来源:发表于2017-03-01 10:09 被阅读19次

UISearchBar类实现一个基于文本的搜索的文本字段控制。该控件提供了一个搜索按钮,输入文字的文本字段书签“按钮,一个取消按钮。UISearchBar对象实际上并不执行任何搜索。您可以使用委托,符合UISearchBarDelegate协议的对象,实施行动时,输入文本和按钮被点击

@protocol UISearchBarDelegate;
NS_CLASS_AVAILABLE_IOS(2_0) @interface UISearchBar : UIView <UIBarPositioning, UITextInputTraits>
// 初始化
- (instancetype)init __TVOS_PROHIBITED;
- (instancetype)initWithFrame:(CGRect)frame NS_DESIGNATED_INITIALIZER __TVOS_PROHIBITED;
- (nullable instancetype)initWithCoder:(NSCoder *)aDecoder NS_DESIGNATED_INITIALIZER __TVOS_PROHIBITED;

// 搜索框的风格 默认蓝色
@property(nonatomic)        UIBarStyle              barStyle __TVOS_PROHIBITED;
// 代理
@property(nullable,nonatomic,weak) id<UISearchBarDelegate> delegate;
// 当前搜索的文本
@property(nullable,nonatomic,copy)   NSString               *text;
// 搜索栏顶部显示的单行文本
@property(nullable,nonatomic,copy)   NSString               *prompt;
// 占位符文本
@property(nullable,nonatomic,copy)   NSString               *placeholder;
// 是否展示标签按钮 默认为NO
@property(nonatomic)        BOOL                    showsBookmarkButton __TVOS_PROHIBITED;
// 是否显示取消按钮 默认为NO
@property(nonatomic)        BOOL                    showsCancelButton __TVOS_PROHIBITED;
// 是否显示搜索结果的按钮 默认为NO
@property(nonatomic)        BOOL                    showsSearchResultsButton NS_AVAILABLE_IOS(3_2) __TVOS_PROHIBITED;
// 是否选择搜索结果按钮
@property(nonatomic, getter=isSearchResultsButtonSelected) BOOL searchResultsButtonSelected NS_AVAILABLE_IOS(3_2) __TVOS_PROHIBITED;
// 用动画设置取消按钮的显示
- (void)setShowsCancelButton:(BOOL)showsCancelButton animated:(BOOL)animated NS_AVAILABLE_IOS(3_0) __TVOS_PROHIBITED;
// 用于配置键盘的输入助手
@property (nonatomic, readonly, strong) UITextInputAssistantItem *inputAssistantItem NS_AVAILABLE_IOS(9_0) __TVOS_PROHIBITED __WATCHOS_PROHIBITED;
// 搜索栏中关键要素的背景底色
@property(null_resettable, nonatomic,strong) UIColor *tintColor;
// 搜索栏的背景底色
@property(nullable, nonatomic,strong) UIColor *barTintColor NS_AVAILABLE_IOS(7_0) UI_APPEARANCE_SELECTOR;
// 搜索栏的风格
@property (nonatomic) UISearchBarStyle searchBarStyle NS_AVAILABLE_IOS(7_0);
// 搜索是否半透明
@property(nonatomic,assign,getter=isTranslucent) BOOL translucent NS_AVAILABLE_IOS(3_0);
// 一个指示范围按钮标题的字符串的数组
@property(nullable, nonatomic,copy) NSArray<NSString *>   *scopeButtonTitles        NS_AVAILABLE_IOS(3_0);
// 选中指示按钮的下标
@property(nonatomic)      NSInteger  selectedScopeButtonIndex NS_AVAILABLE_IOS(3_0);
// 是否显示范围栏 默认值是NO
@property(nonatomic)      BOOL       showsScopeBar            NS_AVAILABLE_IOS(3_0);
// 自定义输入框附件视图
@property (nullable, nonatomic, readwrite, strong) UIView *inputAccessoryView;
// 设置搜索栏的背景图片
@property(nullable, nonatomic,strong) UIImage *backgroundImage NS_AVAILABLE_IOS(5_0) UI_APPEARANCE_SELECTOR;
// 设置范围栏的背景图片
@property(nullable, nonatomic,strong) UIImage *scopeBarBackgroundImage NS_AVAILABLE_IOS(5_0) UI_APPEARANCE_SELECTOR;

// 设置提示栏背景图片
- (void)setBackgroundImage:(nullable UIImage *)backgroundImage forBarPosition:(UIBarPosition)barPosition barMetrics:(UIBarMetrics)barMetrics NS_AVAILABLE_IOS(7_0) UI_APPEARANCE_SELECTOR;
// 返回提示栏的背景图片
- (nullable UIImage *)backgroundImageForBarPosition:(UIBarPosition)barPosition barMetrics:(UIBarMetrics)barMetrics NS_AVAILABLE_IOS(7_0) UI_APPEARANCE_SELECTOR;
// 设置指定搜索文本的图片
- (void)setSearchFieldBackgroundImage:(nullable UIImage *)backgroundImage forState:(UIControlState)state NS_AVAILABLE_IOS(5_0) UI_APPEARANCE_SELECTOR;
// 返回指定搜索文本的图片
- (nullable UIImage *)searchFieldBackgroundImageForState:(UIControlState)state NS_AVAILABLE_IOS(5_0) UI_APPEARANCE_SELECTOR;
// 设置搜索栏图标类型和控件状态图片
- (void)setImage:(nullable UIImage *)iconImage forSearchBarIcon:(UISearchBarIcon)icon state:(UIControlState)state NS_AVAILABLE_IOS(5_0) UI_APPEARANCE_SELECTOR;
// 返回给定搜索栏图标类型和控件状态的图像
- (nullable UIImage *)imageForSearchBarIcon:(UISearchBarIcon)icon state:(UIControlState)state NS_AVAILABLE_IOS(5_0) UI_APPEARANCE_SELECTOR;
// 设置指定范围下按钮的背景图片
- (void)setScopeBarButtonBackgroundImage:(nullable UIImage *)backgroundImage forState:(UIControlState)state NS_AVAILABLE_IOS(5_0) UI_APPEARANCE_SELECTOR;
// 返回指定状态下按钮的背景图片
- (nullable UIImage *)scopeBarButtonBackgroundImageForState:(UIControlState)state NS_AVAILABLE_IOS(5_0) UI_APPEARANCE_SELECTOR;
// 设置左右分段控制控件的状态及隔离器的图片
- (void)setScopeBarButtonDividerImage:(nullable UIImage *)dividerImage forLeftSegmentState:(UIControlState)leftState rightSegmentState:(UIControlState)rightState NS_AVAILABLE_IOS(5_0) UI_APPEARANCE_SELECTOR;
// 返回左右分段控制控件的隔离器的图片
- (nullable UIImage *)scopeBarButtonDividerImageForLeftSegmentState:(UIControlState)leftState rightSegmentState:(UIControlState)rightState NS_AVAILABLE_IOS(5_0) UI_APPEARANCE_SELECTOR;
// 为给定状态的“搜索栏”按钮的标题字符串设置文本属性
- (void)setScopeBarButtonTitleTextAttributes:(nullable NSDictionary<NSString *, id> *)attributes forState:(UIControlState)state NS_AVAILABLE_IOS(5_0) UI_APPEARANCE_SELECTOR;
// 返回给定状态的“搜索栏”按钮的文本属性
- (nullable NSDictionary<NSString *, id> *)scopeBarButtonTitleTextAttributesForState:(UIControlState)state NS_AVAILABLE_IOS(5_0) UI_APPEARANCE_SELECTOR;
// 搜索栏中搜索文本字段背景的偏移量
@property(nonatomic) UIOffset searchFieldBackgroundPositionAdjustment NS_AVAILABLE_IOS(5_0) UI_APPEARANCE_SELECTOR;
// 搜索文本字段背景中文本的偏移量
@property(nonatomic) UIOffset searchTextPositionAdjustment NS_AVAILABLE_IOS(5_0) UI_APPEARANCE_SELECTOR;
// 返回给定图标的位置调整
- (void)setPositionAdjustment:(UIOffset)adjustment forSearchBarIcon:(UISearchBarIcon)icon NS_AVAILABLE_IOS(5_0) UI_APPEARANCE_SELECTOR;
- (UIOffset)positionAdjustmentForSearchBarIcon:(UISearchBarIcon)icon NS_AVAILABLE_IOS(5_0) UI_APPEARANCE_SELECTOR;
@end

@protocol UISearchBarDelegate <UIBarPositioningDelegate>

@optional
// 是否在指定的搜索栏中编辑
- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar;
// 当用户开始编辑搜索文本时调用
- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar;
// 是否搜索文本编辑完成
- (BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar;
// 当用用户编辑完成时调用
- (void)searchBarTextDidEndEditing:(UISearchBar *)searchBar;
// 当文本发生变化时调用(包括清除)
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText;
// 文本发生改变前调用
- (BOOL)searchBar:(UISearchBar *)searchBar shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text NS_AVAILABLE_IOS(3_0);
// 当按下键盘的搜索按钮时调用
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar;
// 当按下书签按钮时调用
- (void)searchBarBookmarkButtonClicked:(UISearchBar *)searchBar __TVOS_PROHIBITED;
// 当按下取消按钮时调用
- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar __TVOS_PROHIBITED;
// 当按下搜索结果按钮时调用
- (void)searchBarResultsListButtonClicked:(UISearchBar *)searchBar NS_AVAILABLE_IOS(3_2) __TVOS_PROHIBITED;
// 当范围选择按钮改变是调用
- (void)searchBar:(UISearchBar *)searchBar selectedScopeButtonIndexDidChange:(NSInteger)selectedScope NS_AVAILABLE_IOS(3_0);

@end

// 搜索框后的图标样式
typedef NS_ENUM(NSInteger, UISearchBarIcon) {
    UISearchBarIconSearch, // 放大镜
    UISearchBarIconClear __TVOS_PROHIBITED, // 有一个x的圆
    UISearchBarIconBookmark __TVOS_PROHIBITED, // 打开书的图标
    UISearchBarIconResultsList __TVOS_PROHIBITED, // 菱形图标列表
};

// 搜索框的风格
typedef NS_ENUM(NSUInteger, UISearchBarStyle) {
    UISearchBarStyleDefault,    // currently UISearchBarStyleProminent
    UISearchBarStyleProminent,  // 用于邮件、消息和联系人
    UISearchBarStyleMinimal     // 用于日历、笔记和音乐
} NS_ENUM_AVAILABLE_IOS(7_0);

相关文章

  • iOS-UIKit框架学习—UISearchBar

    UISearchBar类实现一个基于文本的搜索的文本字段控制。该控件提供了一个搜索按钮,输入文字的文本字段书签“按...

  • iOS-UIKit框架学习—UIDatePicker

    UIDatePicker类实现了一个对象,它使用多个旋转的车轮,以允许用户选择日期和时间。iPhone的例子是一个...

  • iOS-UIKit框架学习—UITextView

    UITextView的类实现一个滚动的,多行文本区域的行为。类支持使用自定义字体,颜色,和对齐的文本的显示,同时还...

  • iOS-UIKit框架学习—UIScrollView

    UIScrollView的类提供支持显示的内容是大于应用程序的窗口大小。它可以使用户内滚动的内容,通过刷卡手势,和...

  • iOS-UIKit框架学习—UIAlertView

    使用UIAlertView类向用户显示一条警告消息。警报视图的功能相似,但在外观上不同于一个动作表(UIActio...

  • iOS-UIKit框架学习—UIActionSheet

    使用UIActionSheet类可以把一套如何继续给定任务的替代品给用户。您还可以使用行动表,以提示用户确认是否有...

  • iOS-UIKit框架学习—UIAlertController

    UIAlertController对象向用户展示一个提示消息。这个类替换了用于显示提示 UIActionSheet...

  • iOS-UIKit框架学习—UITableView

    UITableView在iOS开发中是使用最广泛的一个控件,用于展示单个项目数据的列表,同时也可以进行选择和编辑操作。

  • iOS-UIKit框架学习—UIWebView

    您使用了UIWebView类,在您的应用程序中嵌入网页内容。要做到这一点,你只需创建一个UIWebView对象,将...

  • iOS-UIKit框架学习—UIWindow

    一个UIWindow对象提供了您的应用程序的用户界面的背景和提供了重要的事件处理行为。Windows没有自己的任何...

网友评论

    本文标题:iOS-UIKit框架学习—UISearchBar

    本文链接:https://www.haomeiwen.com/subject/nkrqgttx.html