前言:
本篇介紹UIImage、UIImageView 元素的常用功能用法,
1、UIImage 特殊用法:圖片壓縮、圖片保存相冊、圖片縮放、回傳圖片資料,
基本定義:
@interface UIImage(ST) //!為每個UI都擴展有一個name @property (nonatomic,copy) NSString* name; typedef void (^AfterImageSave)(NSError *err); @property (nonatomic,copy) AfterImageSave afterImageSaveBlock; //!獲取圖片壓縮后的位元組資料,當前圖片不受變化 -(NSData*)compress:(NSInteger)maxKb; -(void)save:(AfterImageSave)afterSave; //!檢測最大寬高的等比縮放 -(UIImage *)reSize:(CGSize)maxSize; -(NSData*)data; @end
2、UIImageView 特殊用法:圖片長按保存事件、保存相冊事件、圓角、縮放、選擇圖片庫(單選)、網址加載圖片,
基本定義
@interface UIImageView(ST)<UIImagePickerControllerDelegate> typedef void (^OnPick)(NSData *data,UIImagePickerController *picker,NSDictionary<NSString *,id> *info); //typedef void (^AfterSetImageUrl)(UIImageView* img); //!長按時提示用戶保存圖片 -(UIImageView*)longPressSave:(BOOL)yesNo; //!執行保存圖片事件 -(UIImageView*)save; //!設定圖片是否圓角 -(UIImageView*)corner:(BOOL)yesNo; //!獲取圖片的地址 -(NSString*)url; //!為圖片設定一個網路地址 (默認超過256K時會進行壓縮) -(UIImageView*)url:(NSString*)url; //!為圖片設定一個網路地址 (默認超過256K時會進行壓縮)afterSet為設定后的回呼函式 //-(UIImageView *)url:(NSString *)url after:(AfterSetImageUrl)block; //!為圖片設定一個網路地址 (默認超過256K時會進行壓縮)default:設定一張默認圖片 -(UIImageView *)url:(NSString *)url default:(id)imgOrName; //!為圖片設定一個網路地址 maxKb 指定超過大小時壓縮顯示(設定為0不壓縮) //-(UIImageView *)url:(NSString *)url maxKb:(NSInteger)compress; //!為圖片設定一個網路地址 (默認超過256K時會進行壓縮) maxKb 指定超過大小時壓縮顯示(設定為0不壓縮) default:設定一張默認圖片 -(UIImageView *)url:(NSString *)url default:(id)imgOrName maxKb:(NSInteger)compress; //!為圖片設定一個網路地址 (默認超過256K時會進行壓縮) maxKb 指定超過大小時壓縮顯示(設定為0不壓縮) default:設定一張默認圖片 afterSet為設定后的回呼函式 //-(UIImageView *)url:(NSString *)url maxKb:(NSInteger)compress default:(id)imgOrName after:(AfterSetImageUrl)block; //!圖片選擇 edit:是否出現裁剪框 -(UIImageView*)pick:(OnPick)pick edit:(BOOL)yesNo; //!圖片選擇 edit:是否出現裁剪框 maxKb:指定壓縮的大小 -(UIImageView*)pick:(OnPick)pick edit:(BOOL)yesNo maxKb:(NSInteger)maxKb; //!將圖片壓縮到指定的寬高,當前圖片受變化 -(UIImageView*)reSize:(CGSize)maxSize;
新增的功能:
#pragma mark 瀏覽查看大圖、(去掉第3方圖片查看) //!雙擊切換放大查看 -(void)zoom; -(UIImageView *)zoom:(BOOL)yesNo; //!點擊發大查看 -(void)show; -(UIImageView *)show:(BOOL)yesNo; +(void)show:(NSInteger)startIndex images:(id)imgOrNameOrArray,...NS_REQUIRES_NIL_TERMINATION;
3、使用示例
這是內部彈出圖片的實作功能,剛好用到了不少圖片功能,當為示例也行:
+(void)show:(NSInteger)startIndex images:(id)imgOrNameOrArray, ... { if(imgOrNameOrArray==nil){return;} [Sagit.MsgBox dialog:^(UIView *winView) { [[[winView addScrollView:nil direction:X] addImages:imgOrNameOrArray, nil]block:^(UIScrollView* scrollView) { [scrollView setPagerIndex:startIndex]; [[scrollView showPager:YES] backgroundColor:ColorBlack]; scrollView.onPrePager = ^(UIScrollView *scrollView) { }; scrollView.onNextPager = ^(UIScrollView *scrollView) { }; for (int i=0; i<scrollView.subviews.count; i++) { UIImageView *imgView=(UIImageView*)scrollView.subviews[i]; [[imgView longPressSave:YES] zoom:YES]; [imgView onClick:^(id view) { [[winView hidden:YES] click]; }]; } }]; }]; }
示例2:
[imgView onClick:^(UIView *view) { NSMutableArray *array=[NSMutableArray new]; for (PersonalPhoto *item in photos) { [array addObject:item.BigPhotoPath]; } [UIImageView show:i images:array, nil]; }];
效果:

4、生成驗證碼:[可指定背景色或字體顏色]
定義:
#pragma mark 本地驗證碼 -(NSString*)VerifyCode; //!生成指定長度驗證碼(隨機背景色), -(UIImageView*)VerifyCode:(NSInteger)length; //!生成指定長度驗證碼(指定背景色,隨機字體顏色), -(UIImageView*)VerifyCode:(NSInteger)length fixBgColor:(UIColor*)fixBgColor; //!生成指定長度驗證碼(指定背景色,指定字體顏色), -(UIImageView *)VerifyCode:(NSInteger)length fixBgColor:(UIColor *)fixBgColor fixFontColor:(UIColor *)fixFontColor;
示例代碼:
[[[[sagit addImageView:@“imgCode”] width:300 height:100] layerCornerRadius:30] .asImageView VerifyCode:4] toCenter];
圖片:

獲取驗證碼:
NSString *code=STImageView("imgCode").VerifyCode;
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/1246.html
標籤:iOS
上一篇:Sagit.Framework For IOS 自動布局教程:12、UIButton、UILabel、UITextField、UITextView 特殊用法介紹
