新浪微博客户端(46)-点击表情按钮弹出表情

 

DJEmotionPageView.m

复制代码
/**
 * 点击表情监听方法
 * param btn 点击的表情按钮
 */
- (void)emotionBtnClick:(DJEmotionButton *)btn {

    // 获取当前应用程序最顶层的窗口
    UIWindow *lastWindow = [[UIApplication sharedApplication].windows lastObject];
    
    // 转换btn当前坐标系
    CGRect newFrame = [btn convertRect:btn.bounds toView:nil];
    
    self.popView.centerX = CGRectGetMidX(newFrame);
    self.popView.y = CGRectGetMaxY(newFrame) - self.popView.height;
    
    // 将当前点击按钮的表情模型传递给popview
    self.popView.emotion = btn.emotion;
    
    [lastWindow addSubview:self.popView];

}
复制代码

DJEmotionPopView.m

复制代码
#import "DJEmotionPopView.h"
#import "DJEmotionButton.h"


@interface DJEmotionPopView()

// 表情
@property (weak, nonatomic) IBOutlet DJEmotionButton *emotionView;

@end


@implementation DJEmotionPopView

+ (instancetype)popView {

    return [[[NSBundle mainBundle] loadNibNamed:@"DJEmotionPopView" owner:nil options:nil] lastObject];
}


- (void)setEmotion:(DJEmotion *)emotion {
    _emotion = emotion;
    self.emotionView.emotion = emotion;
}


#pragma mark - 当从Xib中加载View的时候不会调用initWithFrame方法,则是直接调用initWithCoder及awakeFromNib方法


- (instancetype)initWithCoder:(NSCoder *)decoder
{
    self = [super initWithCoder:decoder];
    if (self) {
     
        self.emotionView.titleLabel.font = [UIFont systemFontOfSize:32];
        
    }
    return self;
}


- (void)awakeFromNib {


}



@end
复制代码

最终效果:

 



如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。
posted @   夜行过客  阅读(458)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示