将UIImage保存到iOS照片库和对应程序沙盒中 1.保存到iOS照片库需要引入QuartzCore.framework框架,具体代码如下:.h文件。#import<QuartzCore/QuartzCore.h>UIImageView *imageView;@property (nonatomic, retain) IBOutlet UIImageView*imageView;UIImage *temp = UIGraphicsGetImageFromCurrentImageContext();UIImageWriteToSavedPhotosAlbum(temp, nil, nil, nil);
【建议】发送通知后再触发delegate方法是一个例外:当delegate方法的调用是为了告诉delegate对象,某个通知已经被发送时,这个delegate方法的参数应该是通知对象,而非触发delegate方法的对象。问题就是:当你从Cocoa framework(即Cocoa系统库)中的某个类派生出来一个子类时,你并不知道你的子类中定义的私有方法是否覆盖了父类的私有方法,即有可能你自己在子类中实现的私有方法和父类中的某个私有方法同名。
NSString *imageUrl = [url absoluteString];UIImage *image = [imageCache getImageFromMemoryForkey:imageUrl];}-(void)cacheImageToMemory:(UIImage*)image forKey:(NSString*)key{ if (image) { [memCache setObject:image forKey:key];}-(void)cacheImageToFile:(UIImage*)image forKey:(NSString*)key ofType:(NSString*)imageType{ if (![imageUrl isEqualToString:@""]) { NSURL *url = [NSURL URLWithString:imageUrl];
OCR(光学字符识别)的简单解析与使用(内含 Demo)<span style="font-size:18px;">//@synthesize是在m文件中定义setter和getter方法的实现@synthesize imageView=imageView_;@synthesize label=label_;</span><span style="font-size:18px;">#pragma mark - TesseractDelegate methods- (BOOL)shouldCancelImageRecognitionForTesseract:(Tesseract*)tesseract { NSLog(@"progress: %d", tesseract.progress);
/* *记得释放 */ [_imageview_gif setBounds:CGRectMake(0, 0, pixelWidth, pixelHeight)]; [_imageview_gif setAnimationImages:images]; [_imageview_gif setAnimationDuration:totalDuration]; [_imageview_gif startAnimating]; }
IOS普通类型持久化 // 普通类型的数据也可以做数据持久化// 我们单独写一个方法,用来获取储存文件的路径以及文件的名称和类型。NSArray*array = [NSArray arrayWithContentsOfFile:[self searchFilePath]];}//还有就是图片类型,图片类型的数据稍微麻烦一点,需要先将图片转化存入到NSData类型中,然后把NSData类型存入文件中,读取的时候也是首先读出的NSData类型,需要再转为UIImage类型才可以现实// 下面是代码:
IOS多线程。= nil){40 [self performSelectorOnMainThread:@selector(setImage:) withObject:image waitUntilDone:YES];41 }else{42 NSLog(@"无法载入相应的图片");43 }44 }45 -(void) setImage:(UIImage*) image{46 [self.imageView setImage:image];47 }48 49 50 - (void)didReceiveMemoryWarning51 {52 [super didReceiveMemoryWarning];53 // Dispose of any resources that can be recreated.54 }55 56 @end.
线程:线程是指进程内的一个执行单元,也是进程内的可调度实体,一个应用至少有一个线程(主线程)(IOS中UI主线程)子线程没有能力去更新主线程的UI,我们之所以能够看到某些时候更新了的效果,是因为子线程结束,立刻回到了主线程中,主线程更新子线程里面要求的UI,由于子线程结束回到主线程的时间比较短,因此造成了一种误解,以为是子线程更新了UI,实则是UI主线程自己做的。
SVProgressHUD–比MBProgressHUD更好用的 iOS进度提示组件简介。拖拽 SVProgressHUD/SVProgressHUD 文件 到你的项目. 注意把 SVProgressHUD.bundle 添加进 Targets->Build Phases->Copy Bundle Resources . 添加 QuartzCore framework 到你的项目. 使用。SVProgressHUD 作为一个单例(也就是说,它并不需要创建和实例化,你直接调用, 如 [SVProgressHUD method] ).+ (void)showWithStatus:(NSString*)string;
self.imageView = [[[UIImageView alloc] initWithFrame:CGRectMake(0.0, 0.0, self.frame.size.width, self.frame.size.height)] autorelease];#import "ViewController.h"#import #import "ImagecropperView.h"@interface ViewController (){}@property (nonatomic, retain) IBOutlet ImageCropperView *cropper;
与 Resources 相似, ImageAssets 也是从图片文件中读取图片数据转为 UIImage, 只不过这些图片数据都打包在 ImageAssets 中. 还有一个最大的区别就是图片缓存. 相当于有一个字典, key 是图片名, value是图片对象. 调用imageNamed:方法时候先从这个字典里取, 如果取到就直接返回, 如果取不到再去文件中创建, 然后保存到这个字典后再返回. 由于字典的key和value都是强引用, 所以一旦创建后的图片永不销毁.
iOS7中容易被忽视的新特性原文:Easily Overlooked New Features in iOS 7iOS7到现在已经发布了有一段时间了。-[UIDevice uniqueIdentifier]在iOS5实际在iOS5的时候已经被遗弃了,但是iOS7中已经完全的禁用了它。此外,iOS7之前的使用了-[UIDevice uniqueIdentifier] 的app如果在iOS7上运行,它不会返回设备的UUID,而是会返回一串字符串,以FFFFFFFF开头,跟着-[UIDevice identifierForVendor]的十六进制值。
} //图片对应的缓存在沙河中的路径 @property (nonatomic, retain) NSString *fileName; //指定默认未加载时,显示的默认图片 @property (nonatomic, retain) UIImage *placeholderImage; //请求网络图片的URL @property (nonatomic, retain) NSString *imageURL; @end AsynImageView.m中的文件内容:
// 读取gif图片数据 NSData *data = [NSData dataWithContentsOfFile: [[NSBundle mainBundle] pathForResource:@"001" ofType:@"gif"]]; UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(0,0,200,200)]; [webView loadData:data MIMEType:@"image/gif" textEncodingName:nil baseURL:nil]; [self.view addSubview:webView];其实,在SDWebImage这个库里有一个UIImage+GIF的类别,里面为UIImage扩展了三个方法:
iOS使用照片選取器(UIImagePickerControllerDelegate)後儲存至資料庫、圖片壓縮iOS使用照片選取器(UIImagePickerControllerDelegate)後儲存至資料庫、圖片壓縮先看UIImagePickerControllerDelegate的協定,主要是利用iOS內建的圖片選取控制器-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info取得照片後的處理,範例。width*scaleSize,image.dateformat = nil;
//压缩图片到指定尺寸大小 (UIImage *)compressOriginalImage:(UIImage *)image toSize:(CGSize)size{ UIImage *resultImage = image; UIGraphicsBeginImageContext(size); [resultImage drawInRect:CGRectMake(0, 0, size.width, size.height)]; UIGraphicsEndImageContext(); return resultImage;}(BOOL)isHaveSpaceInString:(NSString *)string{ NSRange _range = [string rangeOfString:@'' ''];
iOS的单例模式NSUserDefaults的使用总结:iOS单例模式 and NSUserDefaultsiOS的单例模式。NSUserDefaults *standardDefaults = [NSUserDefaults standardUserDefaults];笔者在实际应用中采取了二者结合的模式:让单例模式的类实现协议,程序第一次启动的时候通过NSData做载体读取单例类的实例,并存入单例,程序运行中一直对单例做存储操作,当程序快要进入到后台挂起的时候,通过NSData做载体存入NSUserDefaults,一举两得。
object:nil];直接添加到cell上://获得rowNSInteger row =[[self.tableView indexPathForCell:(UITableViewCell *)[sendersuperview]] row];//获得sectionNSInteger section =[[self.tableView indexPathForCell:(UITableViewCell *)[sendersuperview]] section];//获得indexPathNSIndexPath *indexPath =[self.tableView indexPathForCell:(UITableViewCell *)[sendersuperview]];23:判断Home键在哪个方法要执行对应的方法。
【学习ios之路:UI系列】实现将图片保存到IOS自带的Photo Album中。//长按效果- (void)longPanGesture { UILongPressGestureRecognizer *longGesture = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPanGesture:)]; [self.imageView addGestureRecognizer:longGesture]; longGesture.minimumPressDuration = 4; [longGesture release];}相应事件:longPanGesture方法实现。
iOS深入学习:华丽的#define.一般情况下,我们使用#define来定义一个常量,#define的本质是文本替换,例如#define INT_PTR int*,这时候我们使用INT_PTR,INT_PTR a,b;这条语句等价于int * a,b;也就是定义了一个指针变量a和整型变量b,这是#define常用的场景和需要注意的细节地方。#define DEBUG_MODE 1.#define BACK_GCD(block) dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), block)
NSJSONSerialization,官方提供的Json数据格式解析类,iOS5以后支持。按照目前的发展,Json正在逐步取代XML成为网络数据的通用格式,所以我们重点来看Json格式的数据解析先。self.text = [NSString stringWithFormat:@"电影名称:\n%@\n体裁:\n%@\n剧情简介:\n%@", title, genres, summary];//更新UI操作需要在主线程dispatch_async(dispatch_get_main_queue(), ^{self.textView.text = self.text;});});}
}-(void)connection:(NSString*)statusTag{ if ([statusTag isEqualToString:@"launch"] || [statusTag isEqualToString:@"running"]) { NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];}-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{ @try { NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
[[SGFileManager shareInstance] writeFileAsync:filePath data:data complete:^(BOOL result) { if (result) { NSLog(@"异步写入文件成功"); } }]; [[SGFileManager shareInstance] readFileAsync:filePath complete:^(NSData *data) { if (data) { NSLog(@"异步读取文件成功"); } }];
if (self.rating >= i+1) { imageView.image = self.fullSelectedImage;} else if (self.rating >i) { imageView.image = self.halfSelectedImage;float desiredImageWidth = (self.frame.size.width - (self.leftMargin*2) - (self.midMargin*self.imageViews.count)) / self.imageViews.count;++i) { UIImageView *imageView = (UIImageView *) [self.imageViews objectAtIndex:i];[self.imageViews addObject:imageView];
iOS开发UI篇—UIScrollView控件实现图片缩放功能。当用户在UIScrollView身上使用捏合手势时,UIScrollView会给代理发送一条消息,询问代理究竟要缩放自己内部的哪一个子控件(哪一块内容)当用户在UIScrollView身上使用捏合手势时,UIScrollView会调用代理的viewForZoomingInScrollView:方法,这个方法返回的控件就是需要进行缩放的控件。a.需要告诉scrollview要缩放的时哪一个子控件,这里为scrollview内部的imageview控件。
×