New file |
| | |
| | | // |
| | | // HMEmoticonTipView.m |
| | | // 表情键盘 |
| | | // |
| | | // Created by 刘凡 on 16/3/5. |
| | | // Copyright © 2016年 itcast. All rights reserved. |
| | | // |
| | | |
| | | #import "HMEmoticonTipView.h" |
| | | #import "UIImage+HMEmoticon.h" |
| | | #import "HMEmoticonButton.h" |
| | | |
| | | @implementation HMEmoticonTipView { |
| | | HMEmoticonButton *_tipButton; |
| | | } |
| | | |
| | | #pragma mark - 属性 |
| | | - (void)setEmoticon:(HMEmoticon *)emoticon { |
| | | |
| | | if (_tipButton.emoticon == emoticon) { |
| | | return; |
| | | } |
| | | |
| | | _tipButton.emoticon = emoticon; |
| | | |
| | | CGPoint center = _tipButton.center; |
| | | _tipButton.center = CGPointMake(center.x, center.y + 16); |
| | | [UIView animateWithDuration:0.25 |
| | | delay:0 |
| | | usingSpringWithDamping:0.4 |
| | | initialSpringVelocity:0 |
| | | options:UIViewAnimationOptionCurveEaseOut |
| | | animations:^{ |
| | | _tipButton.center = center; |
| | | } |
| | | completion:nil]; |
| | | } |
| | | |
| | | #pragma mark - 构造函数 |
| | | - (instancetype)initWithFrame:(CGRect)frame { |
| | | self = [super initWithImage:[UIImage hm_imageNamed:@"emoticon_keyboard_magnifier"]]; |
| | | if (self) { |
| | | // 计算按钮大小 |
| | | CGFloat width = 40; |
| | | CGFloat x = (self.bounds.size.width - width) * 0.5; |
| | | CGRect rect = CGRectMake(x, 8, width, width); |
| | | |
| | | _tipButton = [HMEmoticonButton emoticonButtonWithFrame:rect tag:0]; |
| | | [self addSubview:_tipButton]; |
| | | // 修改描点以更改TipView中心点 实现提示遮挡时的偏移 |
| | | self.layer.anchorPoint = CGPointMake(0.5, 0.8); |
| | | } |
| | | return self; |
| | | } |
| | | |
| | | @end |