DownJacketSearchBar 1.0.8

DownJacketSearchBar 1.0.8

测试已测试
语言语言 Objective-CObjective C
许可 MIT
发布最新发布2016年12月

soya-bean 维护。



  • 作者
  • snail-z
  • 模拟微信多选页面搜索条的样式,多张可滚动,并可以利用系统删除键删除选择的头像
  • 导入方法

    • 方法一:CocoaPods: pod 'DownJacketSearchBar'
    • 方法二:直接将 DownJacketSearchBar 文件夹(在 Demo 中)拖放到您的项目中
  • 示例

    • 1. 初始化时未设置 frame,默认为 50
        DownJacketSearchBar *searchBar = [[DownJacketSearchBar alloc] init]; 
        searchBar.delegate = self;
        searchBar.placeholder = @" 搜索昵称/姓名";
        searchBar.leftImage = [UIImage imageNamed:@"downJacket_search"];;
        [self.view addSubview:searchBar];
    • 2. 通过 DownJackets 来设置一个实例,并进行增删
        - (void)addDownJackets:(DownJackets *)downJackets
        - (void)removeDownJackets:(DownJackets *)downJackets
    • 3. 更多详细使用方法请参见 Demo
  • 待完善

    • 1. 给 textfield 添加 contentInset
    • 2. 使用自动布局适配布局
    • 3. 取消选中时的滚动动画
    • 4. 增加标题并根据文字长度来显示
    • 5. 当删除 textfield 最后一个字符时会选中 item
最新完善:修改当删除 textfield 最后一个字符时会选中 item 的问题,详细如下
- (void)downJacketdeleteBackward {
    if ([self.delegate respondsToSelector:@selector(textFieldDidDeleteBackward:)]) {
        id <DownJacketTextFieldDelegate> delegate  = (id<DownJacketTextFieldDelegate>)self.delegate;
        [delegate textFieldDidDeleteBackward:self];
    }
    /**
     1. 交互方法:runtime
     method_exchangeImplementations(deleteBackward, downJacketdeleteBackward);
     也就是外部调用downJacketdeleteBackward就相当于调用了deleteBackward,调用deleteBackward就相当于调用了downJacketdeleteBackward
     2. 此时调用的方法 'downJacketdeleteBackward' 相当于调用系统的 'deleteBackward' 方法,原因是在load方法中进行了方法交换.
     3. 注: 此处并没有递归操作
     4. 在执行自定义方法'downJacketdeleteBackward'之后再去调用'deleteBackward',可以防止多余删除操作!(可根据实际情况处理调用的先后顺序)
     */
    [self downJacketdeleteBackward];
    [[NSNotificationCenter defaultCenter] postNotificationName:DownJacketTextFieldDidDeleteBackwardNotification object:self];
}