From 83b9d5c682b21d88133f24da0f94dd56bd79e687 Mon Sep 17 00:00:00 2001
From: 单军华
Date: Thu, 19 Jul 2018 13:38:55 +0800
Subject: [PATCH] change
---
screendisplay/Pods/EaseUI/EaseUI/EMUIKit/Views/conversation/toolbar/MoreView/EaseChatBarMoreView.m | 352 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 352 insertions(+), 0 deletions(-)
diff --git a/screendisplay/Pods/EaseUI/EaseUI/EMUIKit/Views/conversation/toolbar/MoreView/EaseChatBarMoreView.m b/screendisplay/Pods/EaseUI/EaseUI/EMUIKit/Views/conversation/toolbar/MoreView/EaseChatBarMoreView.m
new file mode 100755
index 0000000..0ced8ab
--- /dev/null
+++ b/screendisplay/Pods/EaseUI/EaseUI/EMUIKit/Views/conversation/toolbar/MoreView/EaseChatBarMoreView.m
@@ -0,0 +1,352 @@
+/************************************************************
+ * * Hyphenate CONFIDENTIAL
+ * __________________
+ * Copyright (C) 2016 Hyphenate Inc. All rights reserved.
+ *
+ * NOTICE: All information contained herein is, and remains
+ * the property of Hyphenate Inc.
+ * Dissemination of this information or reproduction of this material
+ * is strictly forbidden unless prior written permission is obtained
+ * from Hyphenate Inc.
+ */
+
+#import "EaseChatBarMoreView.h"
+
+#define CHAT_BUTTON_SIZE CGSizeMake(50,60)
+#define INSETS 10
+#define MOREVIEW_COL 4
+#define MOREVIEW_ROW 2
+#define MOREVIEW_BUTTON_TAG 1000
+
+@implementation UIView (MoreView)
+
+- (void)removeAllSubview
+{
+ for (UIView *view in self.subviews) {
+ [view removeFromSuperview];
+ }
+}
+
+@end
+
+@interface EaseChatBarMoreView ()<UIScrollViewDelegate>
+{
+ EMChatToolbarType _type;
+ NSInteger _maxIndex;
+}
+
+@property (nonatomic, strong) UIScrollView *scrollview;
+@property (nonatomic, strong) UIPageControl *pageControl;
+
+@property (nonatomic, strong) UIButton *photoButton;
+@property (nonatomic, strong) UIButton *takePicButton;
+@property (nonatomic, strong) UIButton *locationButton;
+@property (nonatomic, strong) UIButton *videoButton;
+@property (nonatomic, strong) UIButton *audioCallButton;
+@property (nonatomic, strong) UIButton *videoCallButton;
+
+@end
+
+@implementation EaseChatBarMoreView
+
++ (void)initialize
+{
+ // UIAppearance Proxy Defaults
+ EaseChatBarMoreView *moreView = [self appearance];
+ moreView.moreViewBackgroundColor = [UIColor whiteColor];
+}
+
+- (instancetype)initWithFrame:(CGRect)frame type:(EMChatToolbarType)type
+{
+ self = [super initWithFrame:frame];
+ if (self) {
+ // Initialization code
+ _type = type;
+ [self setupSubviewsForType:_type];
+ }
+ return self;
+}
+
+- (void)setupSubviewsForType:(EMChatToolbarType)type
+{
+ //self.backgroundColor = [UIColor clearColor];
+ self.accessibilityIdentifier = @"more_view";
+
+ _scrollview = [[UIScrollView alloc] init];
+ _scrollview.pagingEnabled = YES;
+ _scrollview.showsHorizontalScrollIndicator = NO;
+ _scrollview.showsVerticalScrollIndicator = NO;
+ _scrollview.delegate = self;
+ [self addSubview:_scrollview];
+
+ _pageControl = [[UIPageControl alloc] init];
+ _pageControl.currentPage = 0;
+ _pageControl.numberOfPages = 1;
+ [self addSubview:_pageControl];
+
+ CGFloat insets = (self.frame.size.width - 4 * CHAT_BUTTON_SIZE.width) / 5;
+
+ _photoButton = [self btnWithImage:[UIImage easeImageNamed:@"EaseUIResource.bundle/chatBar_colorMore_photo"]
+ highlightedImage:[UIImage easeImageNamed:@"EaseUIResource.bundle/chatBar_colorMore_photoSelected"]
+ title:@"������"];
+
+ _photoButton.accessibilityIdentifier = @"image";
+ [_photoButton setFrame:CGRectMake(insets, 10, CHAT_BUTTON_SIZE.width , CHAT_BUTTON_SIZE.height)];
+ [_photoButton addTarget:self action:@selector(photoAction) forControlEvents:UIControlEventTouchUpInside];
+ _photoButton.tag = MOREVIEW_BUTTON_TAG;
+ [_scrollview addSubview:_photoButton];
+
+ _locationButton = [self btnWithImage:[UIImage easeImageNamed:@"EaseUIResource.bundle/chatBar_colorMore_location"]
+ highlightedImage:[UIImage easeImageNamed:@"EaseUIResource.bundle/chatBar_colorMore_locationSelected"]
+ title:@"������"];
+ _locationButton.accessibilityIdentifier = @"location";
+ [_locationButton setFrame:CGRectMake(insets * 2 + CHAT_BUTTON_SIZE.width, 10, CHAT_BUTTON_SIZE.width , CHAT_BUTTON_SIZE.height)];
+ [_locationButton addTarget:self action:@selector(locationAction) forControlEvents:UIControlEventTouchUpInside];
+ _locationButton.tag = MOREVIEW_BUTTON_TAG + 1;
+ [_scrollview addSubview:_locationButton];
+
+ _takePicButton = [self btnWithImage:[UIImage easeImageNamed:@"EaseUIResource.bundle/chatBar_colorMore_camera"]
+ highlightedImage:[UIImage easeImageNamed:@"EaseUIResource.bundle/chatBar_colorMore_cameraSelected"]
+ title:@"������"];
+ [_takePicButton setFrame:CGRectMake(insets * 3 + CHAT_BUTTON_SIZE.width * 2, 10, CHAT_BUTTON_SIZE.width , CHAT_BUTTON_SIZE.height)];
+ [_takePicButton addTarget:self action:@selector(takePicAction) forControlEvents:UIControlEventTouchUpInside];
+ _takePicButton.tag = MOREVIEW_BUTTON_TAG + 2;
+ _maxIndex = 2;
+ [_scrollview addSubview:_takePicButton];
+
+ CGRect frame = self.frame;
+ if (type == EMChatToolbarTypeChat) {
+ frame.size.height = 150;
+ _audioCallButton = [self btnWithImage:[UIImage easeImageNamed:@"EaseUIResource.bundle/chatBar_colorMore_audioCall"]
+ highlightedImage:[UIImage easeImageNamed:@"EaseUIResource.bundle/chatBar_colorMore_audioCallSelected"]
+ title:@"������"];
+ [_audioCallButton setFrame:CGRectMake(insets * 4 + CHAT_BUTTON_SIZE.width * 3, 10, CHAT_BUTTON_SIZE.width , CHAT_BUTTON_SIZE.height)];
+ [_audioCallButton addTarget:self action:@selector(takeAudioCallAction) forControlEvents:UIControlEventTouchUpInside];
+ _audioCallButton.tag = MOREVIEW_BUTTON_TAG + 3;
+ [_scrollview addSubview:_audioCallButton];
+
+ _videoCallButton = [self btnWithImage:[UIImage easeImageNamed:@"EaseUIResource.bundle/chatBar_colorMore_videoCall"]
+ highlightedImage:[UIImage easeImageNamed:@"EaseUIResource.bundle/chatBar_colorMore_videoCallSelected"]
+ title:@"������"];
+ [_videoCallButton setFrame:CGRectMake(insets, 10 * 2 + CHAT_BUTTON_SIZE.height + 10, CHAT_BUTTON_SIZE.width , CHAT_BUTTON_SIZE.height)];
+ [_videoCallButton addTarget:self action:@selector(takeVideoCallAction) forControlEvents:UIControlEventTouchUpInside];
+ _videoCallButton.tag =MOREVIEW_BUTTON_TAG + 4;
+ _maxIndex = 4;
+ [_scrollview addSubview:_videoCallButton];
+ }
+ else if (type == EMChatToolbarTypeGroup)
+ {
+ frame.size.height = 80;
+ }
+ self.frame = frame;
+ _scrollview.frame = CGRectMake(0, 0, CGRectGetWidth(frame), CGRectGetHeight(frame));
+ _pageControl.frame = CGRectMake(0, CGRectGetHeight(frame) - 20, CGRectGetWidth(frame), 20);
+ _pageControl.hidden = _pageControl.numberOfPages<=1;
+}
+
+
+- (UIButton *)btnWithImage:(UIImage *)aImage highlightedImage:(UIImage *)aHighLightedImage title:(NSString *)aTitle {
+ UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
+ [btn setImage:aImage forState:UIControlStateNormal];
+ [btn setImage:aHighLightedImage forState:UIControlStateHighlighted];
+ [btn setTitle:aTitle forState:UIControlStateNormal];
+ [btn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
+ btn.titleLabel.font = [UIFont systemFontOfSize: 12.0];
+ btn.imageEdgeInsets = UIEdgeInsetsMake(-10, 0, 20, 0);
+ btn.titleEdgeInsets = UIEdgeInsetsMake(14, -60, -20, 0);
+ return btn;
+}
+
+- (void)insertItemWithImage:(UIImage *)image highlightedImage:(UIImage *)highLightedImage title:(NSString *)title
+{
+ CGFloat insets = (self.frame.size.width - MOREVIEW_COL * CHAT_BUTTON_SIZE.width) / 5;
+ CGRect frame = self.frame;
+ _maxIndex++;
+ NSInteger pageSize = MOREVIEW_COL*MOREVIEW_ROW;
+ NSInteger page = _maxIndex/pageSize;
+ NSInteger row = (_maxIndex%pageSize)/MOREVIEW_COL;
+ NSInteger col = _maxIndex%MOREVIEW_COL;
+ UIButton *moreButton = [self btnWithImage:image highlightedImage:highLightedImage title:title];
+ [moreButton setFrame:CGRectMake(page * CGRectGetWidth(self.frame) + insets * (col + 1) + CHAT_BUTTON_SIZE.width * col, INSETS + INSETS * 2 * row + CHAT_BUTTON_SIZE.height * row, CHAT_BUTTON_SIZE.width , CHAT_BUTTON_SIZE.height)];
+ [moreButton setImage:image forState:UIControlStateNormal];
+ [moreButton setImage:highLightedImage forState:UIControlStateHighlighted];
+ [moreButton addTarget:self action:@selector(moreAction:) forControlEvents:UIControlEventTouchUpInside];
+ moreButton.tag = MOREVIEW_BUTTON_TAG+_maxIndex;
+ [_scrollview addSubview:moreButton];
+ [_scrollview setContentSize:CGSizeMake(CGRectGetWidth(self.frame) * (page + 1), CGRectGetHeight(self.frame))];
+ [_pageControl setNumberOfPages:page + 1];
+ if (_maxIndex >=5) {
+ frame.size.height = 150;
+ _scrollview.frame = CGRectMake(0, 0, CGRectGetWidth(frame), CGRectGetHeight(frame));
+ _pageControl.frame = CGRectMake(0, CGRectGetHeight(frame) - 20, CGRectGetWidth(frame), 20);
+ }
+ self.frame = frame;
+ _pageControl.hidden = _pageControl.numberOfPages<=1;
+}
+
+- (void)updateItemWithImage:(UIImage *)image highlightedImage:(UIImage *)highLightedImage title:(NSString *)title atIndex:(NSInteger)index
+{
+ UIView *moreButton = [_scrollview viewWithTag:MOREVIEW_BUTTON_TAG+index];
+ if (moreButton && [moreButton isKindOfClass:[UIButton class]]) {
+ [(UIButton*)moreButton setImage:image forState:UIControlStateNormal];
+ [(UIButton*)moreButton setImage:highLightedImage forState:UIControlStateHighlighted];
+ }
+}
+
+- (void)removeItematIndex:(NSInteger)index
+{
+ UIView *moreButton = [_scrollview viewWithTag:MOREVIEW_BUTTON_TAG+index];
+ if (moreButton && [moreButton isKindOfClass:[UIButton class]]) {
+ [self _resetItemFromIndex:index];
+ [moreButton removeFromSuperview];
+ }
+}
+
+#pragma mark - private
+
+- (void)_resetItemFromIndex:(NSInteger)index
+{
+ CGFloat insets = (self.frame.size.width - MOREVIEW_COL * CHAT_BUTTON_SIZE.width) / 5;
+ CGRect frame = self.frame;
+ for (NSInteger i = index + 1; i<_maxIndex + 1; i++) {
+ UIView *moreButton = [_scrollview viewWithTag:MOREVIEW_BUTTON_TAG+i];
+ if (moreButton && [moreButton isKindOfClass:[UIButton class]]) {
+ NSInteger moveToIndex = i - 1;
+ NSInteger pageSize = MOREVIEW_COL*MOREVIEW_ROW;
+ NSInteger page = moveToIndex/pageSize;
+ NSInteger row = (moveToIndex%pageSize)/MOREVIEW_COL;
+ NSInteger col = moveToIndex%MOREVIEW_COL;
+ [moreButton setFrame:CGRectMake(page * CGRectGetWidth(self.frame) + insets * (col + 1) + CHAT_BUTTON_SIZE.width * col, INSETS + INSETS * 2 * row + CHAT_BUTTON_SIZE.height * row, CHAT_BUTTON_SIZE.width , CHAT_BUTTON_SIZE.height)];
+ moreButton.tag = MOREVIEW_BUTTON_TAG+moveToIndex;
+ [_scrollview setContentSize:CGSizeMake(CGRectGetWidth(self.frame) * (page + 1), CGRectGetHeight(self.frame))];
+ [_pageControl setNumberOfPages:page + 1];
+ }
+ }
+ _maxIndex--;
+ if (_maxIndex >=5) {
+ frame.size.height = 150;
+ } else {
+ frame.size.height = 80;
+ }
+ self.frame = frame;
+ _scrollview.frame = CGRectMake(0, 0, CGRectGetWidth(frame), CGRectGetHeight(frame));
+ _pageControl.frame = CGRectMake(0, CGRectGetHeight(frame) - 20, CGRectGetWidth(frame), 20);
+ _pageControl.hidden = _pageControl.numberOfPages<=1;
+}
+
+#pragma setter
+//- (void)setMoreViewColumn:(NSInteger)moreViewColumn
+//{
+// if (_moreViewColumn != moreViewColumn) {
+// _moreViewColumn = moreViewColumn;
+// [self setupSubviewsForType:_type];
+// }
+//}
+//
+//- (void)setMoreViewNumber:(NSInteger)moreViewNumber
+//{
+// if (_moreViewNumber != moreViewNumber) {
+// _moreViewNumber = moreViewNumber;
+// [self setupSubviewsForType:_type];
+// }
+//}
+
+- (void)setMoreViewBackgroundColor:(UIColor *)moreViewBackgroundColor
+{
+ _moreViewBackgroundColor = moreViewBackgroundColor;
+ if (_moreViewBackgroundColor) {
+ [self setBackgroundColor:_moreViewBackgroundColor];
+ }
+}
+
+/*
+- (void)setMoreViewButtonImages:(NSArray *)moreViewButtonImages
+{
+ _moreViewButtonImages = moreViewButtonImages;
+ if ([_moreViewButtonImages count] > 0) {
+ for (UIView *view in self.subviews) {
+ if ([view isKindOfClass:[UIButton class]]) {
+ UIButton *button = (UIButton *)view;
+ if (button.tag < [_moreViewButtonImages count]) {
+ NSString *imageName = [_moreViewButtonImages objectAtIndex:button.tag];
+ [button setImage:[UIImage imageNamed:imageName] forState:UIControlStateNormal];
+ }
+ }
+ }
+ }
+}
+
+- (void)setMoreViewButtonHignlightImages:(NSArray *)moreViewButtonHignlightImages
+{
+ _moreViewButtonHignlightImages = moreViewButtonHignlightImages;
+ if ([_moreViewButtonHignlightImages count] > 0) {
+ for (UIView *view in self.subviews) {
+ if ([view isKindOfClass:[UIButton class]]) {
+ UIButton *button = (UIButton *)view;
+ if (button.tag < [_moreViewButtonHignlightImages count]) {
+ NSString *imageName = [_moreViewButtonHignlightImages objectAtIndex:button.tag];
+ [button setImage:[UIImage imageNamed:imageName] forState:UIControlStateHighlighted];
+ }
+ }
+ }
+ }
+}*/
+
+#pragma mark - UIScrollViewDelegate
+
+-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
+{
+ CGPoint offset = scrollView.contentOffset;
+ if (offset.x == 0) {
+ _pageControl.currentPage = 0;
+ } else {
+ int page = offset.x / CGRectGetWidth(scrollView.frame);
+ _pageControl.currentPage = page;
+ }
+}
+
+#pragma mark - action
+
+- (void)takePicAction{
+ if(_delegate && [_delegate respondsToSelector:@selector(moreViewTakePicAction:)]){
+ [_delegate moreViewTakePicAction:self];
+ }
+}
+
+- (void)photoAction
+{
+ if (_delegate && [_delegate respondsToSelector:@selector(moreViewPhotoAction:)]) {
+ [_delegate moreViewPhotoAction:self];
+ }
+}
+
+- (void)locationAction
+{
+ if (_delegate && [_delegate respondsToSelector:@selector(moreViewLocationAction:)]) {
+ [_delegate moreViewLocationAction:self];
+ }
+}
+
+- (void)takeAudioCallAction
+{
+ if (_delegate && [_delegate respondsToSelector:@selector(moreViewAudioCallAction:)]) {
+ [_delegate moreViewAudioCallAction:self];
+ }
+}
+
+- (void)takeVideoCallAction
+{
+ if (_delegate && [_delegate respondsToSelector:@selector(moreViewVideoCallAction:)]) {
+ [_delegate moreViewVideoCallAction:self];
+ }
+}
+
+- (void)moreAction:(id)sender
+{
+ UIButton *button = (UIButton*)sender;
+ if (button && _delegate && [_delegate respondsToSelector:@selector(moreView:didItemInMoreViewAtIndex:)]) {
+ [_delegate moreView:self didItemInMoreViewAtIndex:button.tag-MOREVIEW_BUTTON_TAG];
+ }
+}
+
+@end
--
Gitblit v1.8.0