移动文件
This commit is contained in:
@@ -16,12 +16,13 @@ typedef NS_ENUM(NSInteger, KBGuideItemType) {
|
||||
KBGuideItemTypeKF // 客服回复
|
||||
};
|
||||
|
||||
@interface KBGuideVC () <UITableViewDelegate, UITableViewDataSource, UITextFieldDelegate>
|
||||
@interface KBGuideVC () <UITableViewDelegate, UITableViewDataSource, UITextFieldDelegate, UIGestureRecognizerDelegate>
|
||||
|
||||
@property (nonatomic, strong) BaseTableView *tableView; // 列表(继承 BaseTableView)
|
||||
@property (nonatomic, strong) UIView *inputBar; // 底部输入容器
|
||||
@property (nonatomic, strong) UITextField *textField; // 输入框
|
||||
@property (nonatomic, strong) MASConstraint *inputBarBottom;// 输入栏底部约束
|
||||
@property (nonatomic, strong) UITapGestureRecognizer *bgTap;// 点击空白收起键盘
|
||||
|
||||
@property (nonatomic, strong) NSMutableArray<NSDictionary *> *items; // 数据源 [{type, text}]
|
||||
|
||||
@@ -41,7 +42,7 @@ typedef NS_ENUM(NSInteger, KBGuideItemType) {
|
||||
|
||||
[self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.left.right.equalTo(self.view);
|
||||
make.bottom.equalTo(self.view);
|
||||
make.bottom.equalTo(self.inputBar.mas_top);
|
||||
}];
|
||||
|
||||
[self.inputBar mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
@@ -68,12 +69,23 @@ typedef NS_ENUM(NSInteger, KBGuideItemType) {
|
||||
|
||||
// 键盘监听
|
||||
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(kb_keyboardWillChange:) name:UIKeyboardWillChangeFrameNotification object:nil];
|
||||
|
||||
// 点击空白收起键盘(不干扰 cell 的点击/滚动)
|
||||
self.bgTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(kb_didTapBackground)];
|
||||
self.bgTap.cancelsTouchesInView = NO;
|
||||
self.bgTap.delegate = self;
|
||||
[self.tableView addGestureRecognizer:self.bgTap];
|
||||
}
|
||||
|
||||
- (void)dealloc {
|
||||
[[NSNotificationCenter defaultCenter] removeObserver:self];
|
||||
}
|
||||
|
||||
- (void)kb_didTapBackground {
|
||||
// 结束编辑,隐藏键盘
|
||||
[self.view endEditing:YES];
|
||||
}
|
||||
|
||||
|
||||
#pragma mark - Actions
|
||||
|
||||
@@ -224,4 +236,21 @@ typedef NS_ENUM(NSInteger, KBGuideItemType) {
|
||||
return _items;
|
||||
}
|
||||
|
||||
#pragma mark - UIGestureRecognizerDelegate
|
||||
|
||||
// 避免点到输入栏触发收起
|
||||
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
|
||||
if (gestureRecognizer == self.bgTap) {
|
||||
if ([touch.view isDescendantOfView:self.inputBar]) {
|
||||
return NO;
|
||||
}
|
||||
}
|
||||
return YES;
|
||||
}
|
||||
|
||||
// 与其它手势同时识别,避免影响表格滚动/选择
|
||||
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
|
||||
return YES;
|
||||
}
|
||||
|
||||
@end
|
||||
Reference in New Issue
Block a user