| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430 |
- //
- // PasteSelectView.m
- // VclustersGemini
- //
- // Created by APPLE on 2019/7/5.
- // Copyright © 2019 APPLE. All rights reserved.
- //
- #import "PasteSelectView.h"
- #define TAG_PASED_BASE 12345
- @interface PasteSelectView ()<UITableViewDelegate,UITableViewDataSource>{
- NSMutableArray *pasteDataAry;
- UIView *bgView;
- UILabel *tipsLabel;
- UIImageView *noCententImageView;
- UILabel *noCententLabel;
- UIButton *clearBtn;
- }
- @property (nonatomic, strong, nullable) UITableView *tableView;
- @end
- @implementation PasteSelectView
- @synthesize delegate;
- - (UITableView *)tableView{
- if (!_tableView) {
- _tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 304.f, SCREEN_H) style:UITableViewStylePlain];
- _tableView.delegate = self;
- _tableView.dataSource = self;
- _tableView.showsVerticalScrollIndicator = YES;
- _tableView.showsHorizontalScrollIndicator = NO;
- [_tableView setSeparatorStyle:(UITableViewCellSeparatorStyleNone)];
- [_tableView setBackgroundColor:[UIColor clearColor]];
- [_tableView setTableFooterView:[UIView new]];
- }
-
- return _tableView;
- }
- - (id)initWithFrame:(CGRect)frame{
- self = [super initWithFrame:frame];
-
- if (self){
- [self setBackgroundColor:[UIColor clearColor]];
-
- [self initData];
- [self drawView:frame];
- }
-
- return self;
- }
- - (void)initData{
- UIPasteboard* pasteboard = [UIPasteboard generalPasteboard];
- NSString *str = [pasteboard string];
- HLog(@"__________%s______%@____",__func__,str);
-
- if ([str rangeOfString:@"CVLUSTERS_NOUSE_"].location != NSNotFound){
- str = nil;
- }
-
- NSString* curSn = ksharedAppDelegate.DeviceThirdIdMod.data.changeSn;
- pasteDataAry = [HWDataManager getObjectWithKey:curSn];
-
- if([pasteDataAry isKindOfClass:[NSMutableArray class]] && [pasteDataAry isKindOfClass:[NSArray class]]){
- pasteDataAry = [[NSMutableArray alloc] initWithArray:pasteDataAry];
- }
-
- if (str){
- if (pasteDataAry){
- if (![pasteDataAry containsObject:str]){
- if ([pasteDataAry count] == 10){
- [pasteDataAry removeObjectAtIndex:9];
- }
- [pasteDataAry insertObject:str atIndex:0];
- }
- }else{
- pasteDataAry = [[NSMutableArray alloc] init];
- [pasteDataAry addObject:str];
- }
-
- [HWDataManager setObjectWithKey:curSn value:pasteDataAry];
- }
- }
- - (void)drawView:(CGRect)frame{
- [self setBackgroundColor:[UIColor clearColor]];
- CGFloat w_left_right = 57.f;
- // if (w_left_right > 67.f/2.f)
- // {
- // w_left_right = 67.f/2.f;
- // }
-
- if(SCREEN_W > SCREEN_H){
- w_left_right = SCREEN_W/5.0;
- }
-
- CGFloat h_bg = 272.f;
- UIImage *demoPhoneBtnImage = [UIImage imageNamed:@"jianqieban_guanbi_icon"];
- bgView = [[UIView alloc] init];
-
- [bgView setBackgroundColor:RGBACOLOR(0 , 0, 0, 0.6)];
- [bgView.layer setCornerRadius:20.f];
- bgView.clipsToBounds = YES;
- [self addSubview:bgView];
- [bgView mas_makeConstraints:^(MASConstraintMaker *make) {
- make.left.mas_equalTo(w_left_right);
- make.right.mas_equalTo(-w_left_right);
- make.height.mas_equalTo(h_bg);
- make.centerY.equalTo(self.mas_centerY).offset(-(demoPhoneBtnImage.size.height + 30.f/2.f)/2.f);
- }];
-
- CGFloat w_left_right_btn = 30.f/2.f;
-
- /*删除按钮*/
- UIButton *demoPhoneBtn = [[UIButton alloc] init];
- [demoPhoneBtn setBackgroundColor:[UIColor clearColor]];
- [demoPhoneBtn addTarget:self
- action:@selector(removeFromSuperview)
- forControlEvents:(UIControlEventTouchUpInside)];
- [demoPhoneBtn setImage:demoPhoneBtnImage forState:(UIControlStateNormal)];
- [self addSubview:demoPhoneBtn];
-
- [demoPhoneBtn mas_makeConstraints:^(MASConstraintMaker *make) {
- make.centerX.equalTo(self->bgView.mas_centerX);
- make.width.mas_equalTo(demoPhoneBtnImage.size.width);
- make.height.mas_equalTo(demoPhoneBtnImage.size.height);
- make.top.equalTo(self->bgView.mas_bottom).offset(30.f/2.f);
- }];
-
- /*上方文字*/
- tipsLabel = [[UILabel alloc] init];
- [tipsLabel setBackgroundColor:[UIColor clearColor]];
- [tipsLabel setTextColor:[UIColor whiteColor]];
- [tipsLabel setFont:[UIFont systemFontOfSize:18.f]];
- [tipsLabel setTextAlignment:(NSTextAlignmentCenter)];
- NSInteger numStr = 0;
- if (pasteDataAry){
- numStr = [pasteDataAry count];
- }
- [tipsLabel setText:@"剪贴板"];
-
- [bgView addSubview:tipsLabel];
- [tipsLabel mas_makeConstraints:^(MASConstraintMaker *make) {
- make.left.mas_equalTo(w_left_right_btn);
- make.right.mas_equalTo(-w_left_right_btn);
- make.height.mas_equalTo(21.f);
- make.top.mas_equalTo(15);
- }];
-
- /*清空按钮*/
- clearBtn = [[UIButton alloc] init];
- [clearBtn setBackgroundColor:COLOR_ENABLE_BTN];
- [clearBtn setTitle:@"清空" forState:(UIControlStateNormal)];
- [clearBtn setTitleColor:[UIColor whiteColor] forState:(UIControlStateNormal)];
- [clearBtn.titleLabel setFont:[UIFont systemFontOfSize:12.f]];
- [clearBtn addTarget:self action:@selector(clearPasteInfo) forControlEvents:(UIControlEventTouchUpInside)];
- [clearBtn.layer setCornerRadius:4];
- [bgView addSubview:clearBtn];
-
- CGFloat w_clearBtn = 36.f;
- CGFloat h_clearBtn = 19.f;
- [clearBtn mas_makeConstraints:^(MASConstraintMaker *make){
- make.right.mas_equalTo(-w_left_right_btn);
- make.width.mas_equalTo(w_clearBtn);
- make.height.mas_equalTo(h_clearBtn);
- make.centerY.equalTo(tipsLabel.mas_centerY);
- }];
-
- noCententImageView = [[UIImageView alloc] init];
- [noCententImageView setBackgroundColor:[UIColor clearColor]];
- UIImage *noCententImage = [UIImage imageNamed:@"jianqiebankong_icon"];
-
- [bgView addSubview:noCententImageView];
- [noCententImageView mas_makeConstraints:^(MASConstraintMaker *make) {
- make.centerX.equalTo(self->bgView.mas_centerX);
- make.width.mas_equalTo(noCententImage.size.width);
- make.height.mas_equalTo(noCententImage.size.height);
- make.top.mas_equalTo(40.f);
- }];
- [noCententImageView setImage:noCententImage];
- [noCententImageView setHidden:YES];
-
-
- noCententLabel = [[UILabel alloc] init];
- [noCententLabel setBackgroundColor:[UIColor clearColor]];
- [noCententLabel setTextAlignment:(NSTextAlignmentCenter)];
- [noCententLabel setText:@"剪贴板为空"];
- [noCententLabel setFont:[UIFont systemFontOfSize:15.f]];
- [noCententLabel setTextColor:[UIColor whiteColor]];
- [bgView addSubview:noCententLabel];
-
- [noCententLabel mas_makeConstraints:^(MASConstraintMaker *make) {
- make.height.mas_equalTo(20.f);
- make.left.mas_equalTo(0);
- make.right.mas_equalTo(0);
- make.top.equalTo(noCententImageView.mas_bottom).offset(10.f);
- }];
- [noCententLabel setHidden:YES];
-
- /*添加列表*/
- [bgView addSubview:self.tableView];
- [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
- make.top.equalTo(tipsLabel.mas_bottom).offset(10.f);
- make.left.mas_equalTo(0);
- make.right.mas_equalTo(-10);
- make.bottom.mas_equalTo(-10);
- }];
-
- if (pasteDataAry && [pasteDataAry count] > 0){
- [self haveCentent:YES];
- [tipsLabel setHidden:NO];
- }else{
- [self haveCentent:NO];
- [tipsLabel setHidden:YES];
- }
- }
- - (void)clearPasteInfo{
- [self setHidden:YES];
-
- UIAlertController *alertController = [UIAlertController alertControllerWithTitle:nil
- message:@""
- preferredStyle:UIAlertControllerStyleAlert];
-
- NSString *tipsStr = @"确定清空剪贴板?";
- NSMutableAttributedString *string = [[NSMutableAttributedString alloc] initWithString:tipsStr attributes:@{NSFontAttributeName: [UIFont systemFontOfSize: 15], NSForegroundColorAttributeName: HW333333Color}];
- [alertController setValue:string forKey:@"_attributedMessage"];
- UIView *subView1 = alertController.view.subviews[0];
- if (subView1 && [subView1 subviews]){
- UIView *subView2 = subView1.subviews[0];
- if (subView2 && [subView2 subviews]){
- UIView *subView3 = subView2.subviews[0];
- if (subView3 && [subView3 subviews]){
- UIView *subView4 = subView3.subviews[0];
- if (subView4 && [subView4 subviews]){
- UIView *subView5 = subView4.subviews[0];
- if (subView5 && [[subView5 subviews] count] > 1){
- UIView *msg = subView5.subviews[1];
- if ([msg isKindOfClass:[UILabel class]]){
- [(UILabel*)msg setTextAlignment:(NSTextAlignmentCenter)];
- }
- }
- }
- }
- }
- }
-
-
- UIAlertAction *sureAction = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
- [self->pasteDataAry removeAllObjects];
- UIPasteboard* pasteboard = [UIPasteboard generalPasteboard];
- NSString *str = [pasteboard string];
- if (str){
- [pasteboard setString:[@"CVLUSTERS_NOUSE_" stringByAppendingString:str]];
- }
-
- NSString* curSn = ksharedAppDelegate.DeviceThirdIdMod.data.changeSn;
- [HWDataManager setObjectWithKey:curSn value:self->pasteDataAry];
-
- [self.tableView reloadData];
- [self haveCentent:NO];
- [self setHidden:NO];
- }];
- UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
- [self setHidden:NO];
- }];
-
- [sureAction setValue:HW3370FFColor forKey:@"titleTextColor"];//iOS8.3
- [alertController addAction:sureAction];
- [cancelAction setValue:HW333333Color forKey:@"titleTextColor"];//iOS8.3
- [alertController addAction:cancelAction];
-
- // // 弹窗边框
- // UIView *subview = alertController.view.subviews.firstObject;
- // UIView *alertContentView = subview.subviews.firstObject;
- // alertContentView.layer.cornerRadius = 10;
- //// alertContentView.layer.shadowColor = HWFFFFFFColor.CGColor;
- // alertContentView.layer.shadowOffset = CGSizeMake(0,0);
- // alertContentView.layer.shadowOpacity = 1;
- // alertContentView.layer.shadowRadius = 7;
- // 弹窗背景颜色
- if (@available(iOS 13.0, *)) {
- alertController.overrideUserInterfaceStyle = UIUserInterfaceStyleLight;
- }
-
- [[UIApplication sharedApplication].keyWindow.rootViewController presentViewController:alertController animated:YES completion:nil];
- }
- - (void)pastedBtnPressed:(NSString*)centontStr{
- if ([delegate respondsToSelector:@selector(pastedBtnBePressed: pasteSelectView:)]){
- [delegate pastedBtnBePressed:centontStr pasteSelectView:self];
- }
- }
- /*
- // Only override drawRect: if you perform custom drawing.
- // An empty implementation adversely affects performance during animation.
- - (void)drawRect:(CGRect)rect {
- // Drawing code
- }
- */
- - (void)haveCentent:(BOOL)have{
- if (have){
- [tipsLabel setHidden:NO];
- [clearBtn setHidden:NO];
- [noCententImageView setHidden:YES];
- [noCententLabel setHidden:YES];
- [self.tableView setHidden:NO];
- }else{
- [tipsLabel setHidden:NO];
- [clearBtn setHidden:YES];
- [noCententImageView setHidden:NO];
- [noCententLabel setHidden:NO];
- [self.tableView setHidden:YES];
- }
- }
- #pragma mark - 列表委托
- - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
- if (pasteDataAry){
- return [pasteDataAry count];
- }
-
- return 0;
- }
- - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
- return 1;
- }
- - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
- static NSString *identifier = @"UseInfoCell";
- NSInteger row = indexPath.section;
- UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
- cell.selectionStyle = UITableViewCellSelectionStyleNone;
-
- if (!cell){
- cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:identifier];
- [cell setSelectionStyle:UITableViewCellSelectionStyleDefault];
- [cell setBackgroundColor:[UIColor clearColor]];
- [cell setAccessoryType:(UITableViewCellAccessoryNone)];
-
- UILabel *contentLabel = [[UILabel alloc] init];
- [contentLabel setBackgroundColor:[UIColor whiteColor]];
- [contentLabel setTextColor:[UIColor hwColor:@"333333"]];
- [contentLabel setFont:[UIFont systemFontOfSize:12.f]];
- [contentLabel setClipsToBounds:YES];
- [contentLabel setTag:12345];
- [contentLabel.layer setCornerRadius:3.f];
-
- [cell.contentView addSubview:contentLabel];
- [cell.contentView.layer setCornerRadius:3.f];
- [cell.contentView setClipsToBounds:YES];
-
- [contentLabel mas_remakeConstraints:^(MASConstraintMaker *make) {
- make.height.mas_equalTo(32.f);
- make.left.mas_equalTo(10.f);
- make.right.mas_equalTo(-0);
- make.top.mas_equalTo(0);
- }];
- }
-
- UILabel *label = [cell.contentView viewWithTag:12345];
- [label setText:[NSString stringWithFormat:@" %@",[pasteDataAry objectAtIndex:row]]];
-
- return cell;
- }
- - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
- [tableView deselectRowAtIndexPath:indexPath animated:YES];
- NSInteger row = [indexPath section];
- [self pastedBtnPressed:[pasteDataAry objectAtIndex:row]];
- }
- - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
- return 32.f;
- }
- - (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
- return YES;
- }
-
- // 定义编辑样式
- - (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {
- return UITableViewCellEditingStyleDelete;
- }
-
- // 进入编辑模式,按下出现的编辑按钮后,进行删除操作
- - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
- if (editingStyle == UITableViewCellEditingStyleDelete) {
- [pasteDataAry removeObjectAtIndex:indexPath.section];
-
- UIPasteboard* pasteboard = [UIPasteboard generalPasteboard];
- NSString *str = [pasteboard string];
- if (str){
- [pasteboard setString:[@"CVLUSTERS_NOUSE_" stringByAppendingString:str]];
- }
-
- NSString* curSn = ksharedAppDelegate.DeviceThirdIdMod.data.changeSn;
- [HWDataManager setObjectWithKey:curSn value:pasteDataAry];
-
- [self.tableView reloadData];
- if ([pasteDataAry count] == 0){
- [self haveCentent:NO];
- }
- }
- }
-
- // 修改编辑按钮文字
- - (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath{
- return @"删除";
- }
- - (UIView*)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section{
- return [UIView new];
- }
- - (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{
- return 8.f;
- }
- @end
|