移动文件
This commit is contained in:
@@ -161,14 +161,6 @@
|
||||
04C6EAE32EAF942E0089C901 /* VC */,
|
||||
04C6EAAC2EAF86530089C901 /* AppDelegate.h */,
|
||||
04C6EAAD2EAF86530089C901 /* AppDelegate.m */,
|
||||
04FC95DB2EB202A3007BD342 /* KBGuideVC.h */,
|
||||
04FC95DC2EB202A3007BD342 /* KBGuideVC.m */,
|
||||
04FC96FE2EB30A00007BD342 /* KBGuideTopCell.h */,
|
||||
04FC96FF2EB30A00007BD342 /* KBGuideTopCell.m */,
|
||||
04FC97012EB30A00007BD342 /* KBGuideKFCell.h */,
|
||||
04FC97022EB30A00007BD342 /* KBGuideKFCell.m */,
|
||||
04FC97042EB30A00007BD342 /* KBGuideUserCell.h */,
|
||||
04FC97052EB30A00007BD342 /* KBGuideUserCell.m */,
|
||||
04C6EAAE2EAF86530089C901 /* Assets.xcassets */,
|
||||
04C6EAAF2EAF86530089C901 /* Info.plist */,
|
||||
04C6EAB12EAF86530089C901 /* LaunchScreen.storyboard */,
|
||||
@@ -340,6 +332,7 @@
|
||||
04FC95BF2EB1E3B1007BD342 /* Class */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
04FC95E12EB20AD1007BD342 /* Guard */,
|
||||
04FC95C62EB1E4AB007BD342 /* Base */,
|
||||
04FC95BA2EB1E3B1007BD342 /* Main */,
|
||||
04FC95B62EB1E3B1007BD342 /* Home */,
|
||||
@@ -385,6 +378,45 @@
|
||||
path = Base;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
04FC95DE2EB20AD1007BD342 /* M */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
);
|
||||
path = M;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
04FC95DF2EB20AD1007BD342 /* V */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
04FC96FE2EB30A00007BD342 /* KBGuideTopCell.h */,
|
||||
04FC96FF2EB30A00007BD342 /* KBGuideTopCell.m */,
|
||||
04FC97012EB30A00007BD342 /* KBGuideKFCell.h */,
|
||||
04FC97022EB30A00007BD342 /* KBGuideKFCell.m */,
|
||||
04FC97042EB30A00007BD342 /* KBGuideUserCell.h */,
|
||||
04FC97052EB30A00007BD342 /* KBGuideUserCell.m */,
|
||||
);
|
||||
path = V;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
04FC95E02EB20AD1007BD342 /* VC */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
04FC95DB2EB202A3007BD342 /* KBGuideVC.h */,
|
||||
04FC95DC2EB202A3007BD342 /* KBGuideVC.m */,
|
||||
);
|
||||
path = VC;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
04FC95E12EB20AD1007BD342 /* Guard */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
04FC95DE2EB20AD1007BD342 /* M */,
|
||||
04FC95DF2EB20AD1007BD342 /* V */,
|
||||
04FC95E02EB20AD1007BD342 /* VC */,
|
||||
);
|
||||
path = Guard;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
2C53A0856097DCFBE7B55649 /* Pods */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
|
||||
@@ -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