// // TUIPhotoPreviewCell.h // TUIPhotoPreviewCell // // Created by lynx on 2024/8/21. // Copyright © 2024 Tencent. All rights reserved. // #import #import #import @interface TUIAssetPreviewCell : UICollectionViewCell @property (nonatomic, strong) TUIAssetModel *model; @property (nonatomic, copy) void (^singleTapGestureBlock)(void); - (void)configSubviews; - (void)photoPreviewCollectionViewDidScroll; @end @class TUIPhotoPreviewView; @interface TUIPhotoPreviewCell : TUIAssetPreviewCell @property (nonatomic, copy) void (^imageProgressUpdateBlock)(double progress); @property (nonatomic, strong) TUIPhotoPreviewView *previewView; @property (nonatomic, assign) BOOL allowCrop; @property (nonatomic, assign) CGRect cropRect; @property (nonatomic, assign) BOOL scaleAspectFillCrop; - (void)recoverSubviews; @end @interface TUIPhotoPreviewView : UIView @property (nonatomic, strong) UIImageView *imageView; @property (nonatomic, strong) UIScrollView *scrollView; @property (nonatomic, strong) UIView *imageContainerView; @property (nonatomic, strong) TUIProgressView *progressView; @property (nonatomic, strong) UIImageView *iCloudErrorIcon; @property (nonatomic, strong) UILabel *iCloudErrorLabel; @property (nonatomic, copy) void (^iCloudSyncFailedHandle)(id asset, BOOL isSyncFailed); @property (nonatomic, assign) CGRect cropRect; @property (nonatomic, assign) BOOL scaleAspectFillCrop; @property (nonatomic, strong) TUIAssetModel *model; @property (nonatomic, strong) id asset; @property (nonatomic, copy) void (^singleTapGestureBlock)(void); @property (nonatomic, copy) void (^imageProgressUpdateBlock)(double progress); @property (nonatomic, assign) int32_t imageRequestID; - (void)recoverSubviews; @end @class AVPlayer, AVPlayerLayer; @interface TUIVideoPreviewCell : TUIAssetPreviewCell @property (strong, nonatomic) AVPlayer *player; @property (strong, nonatomic) AVPlayerLayer *playerLayer; @property (strong, nonatomic) UIButton *playButton; @property (strong, nonatomic) UIImage *cover; @property (nonatomic, strong) NSURL *videoURL; @property (nonatomic, strong) UIImageView *iCloudErrorIcon; @property (nonatomic, strong) UILabel *iCloudErrorLabel; @property (nonatomic, copy) void (^iCloudSyncFailedHandle)(id asset, BOOL isSyncFailed); - (void)pausePlayerAndShowNaviBar; @end @interface TUIGifPreviewCell : TUIAssetPreviewCell @property (strong, nonatomic) TUIPhotoPreviewView *previewView; @end