zoukankan      html  css  js  c++  java
  • 新浪微博客户端(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

    最终效果:

  • 相关阅读:
    gitlab备份及迁移
    python paramiko 进行文件上传处理
    秒杀场景简介
    nmon--非常棒的LINUX/AIX性能计数器监测和分析工具
    使用wait()与notify()实现线程间协作
    【转】Spring bean处理——回调函数
    ldconfig和ldd用法
    tcpdump 获取http请求url
    clearfix清除浮动
    git push命令
  • 原文地址:https://www.cnblogs.com/yongdaimi/p/6119756.html
Copyright © 2011-2022 走看看