清理键盘emoji内存高的问题
This commit is contained in:
@@ -66,14 +66,7 @@
|
||||
make.bottom.equalTo(self.mas_bottom).offset(-bottomInset);
|
||||
}];
|
||||
|
||||
self.emojiView = [[KBEmojiPanelView alloc] init];
|
||||
self.emojiView.hidden = YES;
|
||||
self.emojiView.alpha = 0.0;
|
||||
self.emojiView.delegate = self;
|
||||
[self addSubview:self.emojiView];
|
||||
[self.emojiView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.edges.equalTo(self);
|
||||
}];
|
||||
// emoji 面板改为按需创建
|
||||
|
||||
// [self.topBar mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
// make.left.right.equalTo(self);
|
||||
@@ -116,9 +109,10 @@
|
||||
if (self.emojiPanelVisible == visible) return;
|
||||
self.emojiPanelVisible = visible;
|
||||
if (visible) {
|
||||
[self.emojiView reloadData];
|
||||
self.emojiView.hidden = NO;
|
||||
[self bringSubviewToFront:self.emojiView];
|
||||
KBEmojiPanelView *emojiView = [self emojiView];
|
||||
[emojiView reloadData];
|
||||
emojiView.hidden = NO;
|
||||
[self bringSubviewToFront:emojiView];
|
||||
} else {
|
||||
self.keyboardView.hidden = NO;
|
||||
self.topBar.hidden = NO;
|
||||
@@ -126,19 +120,28 @@
|
||||
}
|
||||
|
||||
void (^changes)(void) = ^{
|
||||
self.emojiView.alpha = visible ? 1.0 : 0.0;
|
||||
if (self.emojiView) {
|
||||
self.emojiView.alpha = visible ? 1.0 : 0.0;
|
||||
}
|
||||
self.keyboardView.alpha = visible ? 0.0 : 1.0;
|
||||
self.topBar.alpha = visible ? 0.0 : 1.0;
|
||||
self.suggestionBar.alpha = visible ? 0.0 : ([self kb_shouldShowSuggestions] ? 1.0 : 0.0);
|
||||
};
|
||||
void (^completion)(BOOL) = ^(BOOL finished) {
|
||||
self.emojiView.hidden = !visible;
|
||||
if (self.emojiView) {
|
||||
self.emojiView.hidden = !visible;
|
||||
}
|
||||
self.keyboardView.hidden = visible;
|
||||
self.topBar.hidden = visible;
|
||||
if (visible) {
|
||||
self.suggestionBar.hidden = YES;
|
||||
} else {
|
||||
self.suggestionBar.hidden = ![self kb_shouldShowSuggestions];
|
||||
if (self.emojiView) {
|
||||
[self.emojiView purgeEmojiCache];
|
||||
[self.emojiView removeFromSuperview];
|
||||
self.emojiView = nil;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@@ -154,6 +157,22 @@
|
||||
[self setEmojiPanelVisible:!self.emojiPanelVisible animated:YES];
|
||||
}
|
||||
|
||||
#pragma mark - Lazy Load
|
||||
|
||||
- (KBEmojiPanelView *)emojiView {
|
||||
if (!_emojiView) {
|
||||
_emojiView = [[KBEmojiPanelView alloc] init];
|
||||
_emojiView.hidden = YES;
|
||||
_emojiView.alpha = 0.0;
|
||||
_emojiView.delegate = self;
|
||||
[self addSubview:_emojiView];
|
||||
[_emojiView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.edges.equalTo(self);
|
||||
}];
|
||||
}
|
||||
return _emojiView;
|
||||
}
|
||||
|
||||
|
||||
#pragma mark - KBToolBarDelegate
|
||||
|
||||
|
||||
Reference in New Issue
Block a user