12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- //
- // LZBFaceSignlePageView.m
- // LZBKeyBoardView
- //
- // demo地址:https://github.com/lzbgithubcode/LZBKeyBoardView.git
- // Created by zibin on 16/12/6.
- // Copyright © 2016年 apple. All rights reserved.
- //
- #import "LZBFaceSignlePageView.h"
- #import "LZBEmojiButton.h"
- #define LZBFaceSignlePageView_Default_LeftRightInset 15 //左右间距
- #define LZBFaceSignlePageView_Default_TopBottomInset 10 //上下间距
- @interface LZBFaceSignlePageView()
- @property (nonatomic, strong) UIButton *deleteButton; /** 删除按钮 */
- @end
- @implementation LZBFaceSignlePageView
- - (instancetype)initWithFrame:(CGRect)frame
- {
- if(self = [super initWithFrame:frame])
- {
- [self addSubview:self.deleteButton];
- }
- return self;
- }
- - (void)setEmojiSignlePageModles:(NSArray<LZBEmojiModel *> *)emojiSignlePageModles
- {
- _emojiSignlePageModles = emojiSignlePageModles;
- NSInteger count = emojiSignlePageModles.count;
- for (NSInteger i = 0; i < count; i++)
- {
- LZBEmojiButton *emojiButton = [[LZBEmojiButton alloc]init];
- [self addSubview:emojiButton];
- emojiButton.model = emojiSignlePageModles[i];
- [emojiButton addTarget:self action:@selector(emojiButtonClick:) forControlEvents:UIControlEventTouchUpInside];
- }
- }
- - (void)layoutSubviews
- {
- [super layoutSubviews];
- NSInteger count = self.emojiSignlePageModles.count;
- CGFloat emojiButtonW = (self.bounds.size.width - 2 *LZBFaceSignlePageView_Default_LeftRightInset)/LZBFaceSignlePageView_Emjoi_MaxCol;
- CGFloat emojiButtonH = (self.bounds.size.height - 2 *LZBFaceSignlePageView_Default_TopBottomInset)/LZBFaceSignlePageView_Emjoi_MaxRow;
- for (NSInteger i = 0; i < count; i++)
- {
- CGFloat emojiButtonX = LZBFaceSignlePageView_Default_LeftRightInset + (i%LZBFaceSignlePageView_Emjoi_MaxCol)*emojiButtonW;
- CGFloat emojiButtonY = LZBFaceSignlePageView_Default_TopBottomInset + (i/LZBFaceSignlePageView_Emjoi_MaxCol)*emojiButtonH;
- LZBEmojiButton *emojiButton = self.subviews[i + 1]; //第0个是删除按钮
- emojiButton.frame = CGRectMake(emojiButtonX, emojiButtonY, emojiButtonW, emojiButtonH);
- }
- LZBEmojiButton *lastEmojiButton = [self.subviews lastObject];
- //布局删除按钮
- CGFloat deleteButtonX = lastEmojiButton.frame.origin.x + lastEmojiButton.bounds.size.width;
- CGFloat deleteButtonY = lastEmojiButton.frame.origin.y;
- CGFloat deleteButtonW = emojiButtonW;
- CGFloat deleteButtonH = emojiButtonH;
- self.deleteButton.frame = CGRectMake(deleteButtonX, deleteButtonY, deleteButtonW, deleteButtonH);
-
-
- }
- #pragma mark - handle
- - (void)deleteClick
- {
- if(self.emojiDidDeleteBlock)
- self.emojiDidDeleteBlock();
- }
- - (void)emojiButtonClick:(LZBEmojiButton *)emojiButton
- {
- if(self.emojiDidSelectBlock)
- self.emojiDidSelectBlock(emojiButton.model);
- }
- #pragma mark - lazy
- - (UIButton *)deleteButton{
- if (_deleteButton == nil)
- {
- _deleteButton = [UIButton buttonWithType:UIButtonTypeCustom];
- [_deleteButton setImage:LZBKeyboardBundleImage(@"compose_emotion_delete")forState:UIControlStateNormal];
- [_deleteButton addTarget:self action:@selector(deleteClick) forControlEvents:UIControlEventTouchUpInside];
- }
- return _deleteButton;
- }
- @end
|