| | |
| | | #import "MJRefreshNormalHeader.h" |
| | | #import "MJRefreshAutoNormalFooter.h" |
| | | #import "HDLEZDevMsgListModel.h" |
| | | @interface HDLEZDeviceMsgListViewController () |
| | | #import "MWPhotoBrowser.h" |
| | | #import "SDWebImageManager.h" |
| | | #import <Photos/Photos.h> |
| | | @interface HDLEZDeviceMsgListViewController ()<MWPhotoBrowserDelegate> |
| | | @property (nonatomic, strong) HDLEZDeviceMsgListView *msgListV;//消息列表view |
| | | |
| | | @property (nonatomic, strong) MJRefreshNormalHeader *header;//刷新header |
| | |
| | | |
| | | @property (nonatomic, assign) NSInteger pageSize;//分页容量 |
| | | |
| | | @property (nonatomic, strong) NSMutableArray <MWPhoto *>*photos; // 预览图片信息 |
| | | @property (nonatomic, strong) NSString *currentPreviewPhoto; // 当前预览的图片 |
| | | |
| | | @end |
| | | |
| | | @implementation HDLEZDeviceMsgListViewController |
| | |
| | | make.top.equalTo(self.view).offset(HDLEZ_APP_TOP_BAR_HEIGHT); |
| | | make.left.bottom.right.equalTo(self.view); |
| | | }]; |
| | | // _msgListV.choseDelegate=self; |
| | | __weak __typeof(self)weakSelf = self; |
| | | [_msgListV previewPicture:^(NSString * _Nonnull pictureUrl) { |
| | | [weakSelf previewPictureWithUrl:pictureUrl]; |
| | | }]; |
| | | |
| | | //下拉刷新 |
| | | // 设置回调(一旦进入刷新状态,就调用target的action,也就是调用self的loadNewData方法) |
| | |
| | | weakSelf.msgListV.msgList=weakSelf.msgList; |
| | | weakSelf.currentPageNo+=1; |
| | | }else{ |
| | | #warning mock |
| | | if (weakSelf.msgList.count == 0) { |
| | | HDLEZDeviceMsgInfoModel *model = [[HDLEZDeviceMsgInfoModel alloc] init]; |
| | | model.title = @"mock title 你好你好我是超长的测试标题,你来看下是否超出长度,你好你好我是超长的测试标题,你来看下是否超出长度"; |
| | | model.createTime = @"2023.06.15"; |
| | | model.content = @"mock content"; |
| | | model.imageUrl = @"https://upload-images.jianshu.io/upload_images/5809200-a99419bb94924e6d.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240"; |
| | | [weakSelf.msgList addObject:model]; |
| | | |
| | | HDLEZDeviceMsgInfoModel *model1 = [[HDLEZDeviceMsgInfoModel alloc] init]; |
| | | model1.title = @"mock title1,你好你好"; |
| | | model1.createTime = @"2023.06.15"; |
| | | model1.content = @"mock content1"; |
| | | model1.imageUrl = @"http://b.hiphotos.baidu.com/image/pic/item/e824b899a9014c08878b2c4c0e7b02087af4f4a3.jpg"; |
| | | [weakSelf.msgList addObject:model1]; |
| | | |
| | | HDLEZDeviceMsgInfoModel *model2 = [[HDLEZDeviceMsgInfoModel alloc] init]; |
| | | model2.title = @"mock title2"; |
| | | model2.createTime = @"2023.06.15"; |
| | | model2.content = @"mock content2"; |
| | | model2.imageUrl = @"https://fastly.picsum.photos/id/452/1000/3000.jpg?hmac=g6GQYs1wmiPeoKOdwI3ot1y4MInIj_dnPk_jCYbVYfk"; |
| | | [weakSelf.msgList addObject:model2]; |
| | | |
| | | } |
| | | weakSelf.msgListV.msgList=weakSelf.msgList; |
| | | [weakSelf.footer endRefreshingWithNoMoreData]; |
| | | } |
| | | |
| | |
| | | }]; |
| | | } |
| | | |
| | | #pragma mark MWPhotoBrowserDelegate |
| | | - (NSUInteger)numberOfPhotosInPhotoBrowser:(MWPhotoBrowser *)photoBrowser { |
| | | return self.photos.count; |
| | | } |
| | | |
| | | - (id <MWPhoto>)photoBrowser:(MWPhotoBrowser *)photoBrowser photoAtIndex:(NSUInteger)index { |
| | | if (index < self.photos.count) { |
| | | return [self.photos objectAtIndex:index]; |
| | | } |
| | | return nil; |
| | | } |
| | | |
| | | - (void)didClickCurrentPhotoBrowserBlank:(MWPhotoBrowser *)photoBrowser { |
| | | [self.navigationController popToViewController:self animated:NO]; |
| | | } |
| | | |
| | | - (void)didClickDownLoad:(MWPhotoBrowser *)photoBrowser { |
| | | dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ |
| | | if (!self.currentPreviewPhoto || self.currentPreviewPhoto.length == 0) { |
| | | [UIView dd_showMessage:NSLocalizedString(@"device_save_gallery_failure", @"下载失败")]; |
| | | return; |
| | | } |
| | | NSURL *url = [NSURL URLWithString:self.currentPreviewPhoto]; |
| | | SDWebImageManager *manager = [SDWebImageManager sharedManager]; |
| | | UIImage *img; |
| | | if ([manager diskImageExistsForURL:url]) { |
| | | img = [[manager imageCache] imageFromDiskCacheForKey:url.absoluteString]; |
| | | } else { |
| | | //从网络下载图片 |
| | | NSData *data = [NSData dataWithContentsOfURL:url]; |
| | | img = [UIImage imageWithData:data]; |
| | | } |
| | | // 保存图片到相册中 |
| | | dispatch_async(dispatch_get_main_queue(), ^{ |
| | | UIImageWriteToSavedPhotosAlbum(img,self, @selector(image:didFinishSavingWithError |
| | | :contextInfo:),nil); |
| | | }); |
| | | }); |
| | | } |
| | | |
| | | //保存图片完成之后的回调 |
| | | - (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error |
| | | contextInfo:(void *)contextInfo { |
| | | // Was there an error? |
| | | NSString *message = nil; |
| | | if (!error) { |
| | | message = NSLocalizedString(@"device_save_gallery", @"已保存至手机相册"); |
| | | } |
| | | else |
| | | { |
| | | message = [error description]; |
| | | } |
| | | [UIView dd_showMessage:message]; |
| | | } |
| | | |
| | | #pragma mark PrivateMethod |
| | | - (void)previewPictureWithUrl:(NSString *)picUrl { |
| | | self.currentPreviewPhoto = picUrl; |
| | | self.photos = [NSMutableArray array]; |
| | | [self.photos addObject:[MWPhoto photoWithURL:[NSURL URLWithString:picUrl]]]; |
| | | MWPhotoBrowser *browser = [[MWPhotoBrowser alloc] initWithDelegate:self]; |
| | | [browser showDownloadBtn]; |
| | | |
| | | [self.navigationController pushViewController:browser animated:NO]; |
| | | } |
| | | |
| | | |
| | | @end |