ASIHTTPRequest实现断点下载
- (IBAction)URLFetchWithProgress:(id)sender
{
[startButton setTitle:@"Stop" forState:UIControlStateNormal];
[startButton addTarget:self action:@selector(stopURLFetchWithProgress:)forControlEvents:UIControlEventTouchUpInside];
NSString*tempFile = [[[[NSBundle mainBundle] bundlePath]stringByDeletingLastPathComponent]stringByAppendingPathComponent:@"MemexTrails_1.0b1.zip.download"];
if ([[NSFileManager defaultManager] fileExistsAtPath:tempFile]) {
[[NSFileManager defaultManager] removeItemAtPath:tempFile error:nil];
}
[self resumeURLFetchWithProgress:self];
}
- (IBAction)stopURLFetchWithProgress:(id)sender
{
networkQueue = [[ASINetworkQueue alloc] init];
timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:selfselector:@selector(updateBandwidthUsageIndicator) userInfo:nil repeats:YES];
timer = nil;
[startButton setTitle:@"Stop" forState:UIControlStateNormal];
[startButton addTarget:self action:@selector(URLFetchWithProgress:)forControlEvents:UIControlEventTouchUpInside];
[networkQueue cancelAllOperations];
[resumeButton setEnabled:YES];
}
- (IBAction)resumeURLFetchWithProgress:(id)sender
{
[resumeButton setEnabled:NO];
[startButton setTitle:@"Start" forState:UIControlStateNormal];
[startButton addTarget:self action:@selector(stopURLFetchWithProgress:)forControlEvents:UIControlEventTouchUpInside];
[networkQueue cancelAllOperations];
[networkQueue setShowAccurateProgress:YES];
[networkQueue setDownloadProgressDelegate:progressIndicator];
[networkQueue setDelegate:self];
[networkQueue setRequestDidFinishSelector:@selector(URLFetchWithProgressComplete:)];
ASIHTTPRequest*request=[[[ASIHTTPRequest alloc] initWithURL:[NSURLURLWithString:@"http://9991.net/blog/mp3/2.mp3"]] autorelease];
[request setDownloadDestinationPath:[[[[NSBundle mainBundle] bundlePath]
stringByDeletingLastPathComponent] stringByAppendingPathComponent:@"MemexTrails_1.0b1.mp3"]];
[request setTemporaryFileDownloadPath:[[[[NSBundle mainBundle] bundlePath]stringByDeletingLastPathComponent]stringByAppendingPathComponent:@"MemexTrails_1.0b1.zip.down"]];
[request setAllowResumeForFileDownloads:YES];
[networkQueue addOperation:request];
[networkQueue go];
}
- (void)URLFetchWithProgressComplete:(ASIHTTPRequest *)request
{
if ([request error]) {
fileLocation.text=[NSString stringWithFormat:@"An error occurred:%@",[[[requesterror] userInfo] objectForKey:@"Title"]];
} else {
fileLocation.text=[NSString stringWithFormat:@"File downloaded to %@",[requestdownloadDestinationPath]];
}
[startButton setTitle:@"Start" forState:UIControlStateNormal];
[startButton addTarget:self action:@selector(URLFetchWithProgress:)forControlEvents:UIControlEventTouchUpInside];
}
- (IBAction)throttleBandwidth:(id)sender
{
if ([(UIButton *)sender state] ==YES) {
[ASIHTTPRequest setMaxBandwidthPerSecond:ASIWWANBandwidthThrottleAmount];
} else {
[ASIHTTPRequest setMaxBandwidthPerSecond:];
}
}
Safari 启动本地app
在plist文件中加入URL types 结构如下图,在Safari中地址栏输入 设置的字符串,比如设置的是
QQ,地址栏输入 QQ:// 就可以起点本地应用。
拖到视频进度与滑动手势冲突解决办法
#pragma mark -
#pragma mark UIGestureRecognizerDelegate
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
UIView *touchView = touch.view;
if ([touchView isKindOfClass:[UISlider class]])
{
return NO;
}
else
{
return YES;
}
}
tableview滑动导致NSTimer和委托回调停止解决办法
/ /请求回调
NSURLRequest * 请求 = ...
scheduleInRunLoop :[ NSRunLoop currentRunLoop ]
forMode :NSRunLoopCommonModes ]
[ 连接开始] / /定时器回调
NSTimer * updateTimer = [NSTimer scheduledTimerWithTimeInterval:0.01f目标:自我选择:选择(updatePencent)的UserInfo:无重复:是];
* NSRunLoop主要= [NSRunLoop currentRunLoop]
[主要addTimer:updateTimer forMode:NSRunLoopCommonModes];
手势识别类
UIGestureRecognizer
SFHFKeychainUtils 存储信息
苹果SDK自带的就有密码保护,使用方法很简单,如下:
1、引入Security.frameWork框架。
2、引入头文件:SFHKeychainUtils.h.
3、存密码:
[SFHFKeychainUtils storeUsername:@"dd" andPassword:@"aa"forServiceName:SERVICE_NAMEupdateExisting:1 error:nil];
[SFHFKeychainUtils deleteItemForUsername:@"dd" andServiceName:SERVICE_NAME error:nil];
4、取密码:
NSString *passWord = [SFHFKeychainUtils getPasswordForUsername:@"dd"andServiceName:SERVICE_NAMEerror:nil];
missing required architecture i386 in file 解决办法
在TargetInfo里面修改 Framework Search Pasths 删除里面内容就可以了。
view 放大缩小动画效果
//创建缩小了的视图
myWeiBoImageVC = [[UIViewController alloc] init];
myWeiBoImageVC.view.clipsToBounds = YES;
myWeiBoImageVC.view.alpha = 0.0;
myWeiBoImageVC.view.frame = CGRectMake(64, 0, 1024-64, 768-20);
[self.view addSubview:myWeiBoImageVC.view];
CGAffineTransform newTransform =
CGAffineTransformScale(myWeiBoImageVC.view.transform, 0.1, 0.1);
[myWeiBoImageVC.view setTransform:newTransform];
myWeiBoImageVC.view.center = CGPointMake(670, 100);
[self performSelector:@selector(imageViewControllerBigAnimation)];
//放大刚刚创建缩小后的视图
- (void)imageViewControllerBigAnimation{
[UIView beginAnimations:@"imageViewBig" context:nil];
[UIView setAnimationDuration:0.5];
CGAffineTransform newTransform = CGAffineTransformConcat(myWeiBoImageVC.view.transform, CGAffineTransformInvert(myWeiBoImageVC.view.transform));
[myWeiBoImageVC.view setTransform:newTransform];
myWeiBoImageVC.view.alpha = 1.0;
myWeiBoImageVC.view.center = CGPointMake(416, 510);
[UIView commitAnimations];
}
//缩小视图 隐藏
- (void)imageViewControllerSmallAnimation{
[UIView beginAnimations:@"imageViewSmall" context:nil];
[UIView setAnimationDuration:0.5];
CGAffineTransform newTransform = CGAffineTransformScale(myWeiBoImageVC.view.transform, 0.1, 0.1);
[myWeiBoImageVC.view setTransform:newTransform];
myWeiBoImageVC.view.center = CGPointMake(670, 100);
[UIView commitAnimations];
}
UIScrollView 控制View缩放
allImageScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 768, 1024)];
allImageScrollView.minimumZoomScale = 0.3;
allImageScrollView.maximumZoomScale = 1.0;
allImageScrollView.backgroundColor = [UIColor clearColor];
allImageScrollView.delegate = self;
[self.view addSubview:allImageScrollView];
mPicStatusesViewController = [[PicStatusesViewController alloc] init];
[allImageScrollView addSubview:mPicStatusesViewController.view];
//UIScrollView Delegete 实现
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
return mPicStatusesViewController.view; //返回ScrollView上添加的需要缩放的视图
}
- (void)scrollViewDidZoom:(UIScrollView *)scrollView
{
//缩放操作中被调用
}
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale
{
//缩放结束后被调用
}
获取系统语言设置
NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults];
NSArray *languages = [userDefault objectForKey:@"AppleLanguages"];
NSString *preferredLang = [languages objectAtIndex:0];
缓存路径下文件大小
- (unsigned long long int) cacheFolderSize
{
NSFileManager *_manager = [NSFileManager defaultManager];
NSArray *_cachePaths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory,
NSUserDomainMask, YES);
NSString *_cacheDirectory = [_cachePaths objectAtIndex:];
NSArray *_cacheFileList;
NSEnumerator *_cacheEnumerator;
NSString *_cacheFilePath;
unsigned long long int _cacheFolderSize = ;
_cacheFileList = [ _manager subpathsAtPath:_cacheDirectory];
_cacheEnumerator = [_cacheFileList objectEnumerator];
while (_cacheFilePath = [_cacheEnumerator nextObject])
{
NSDictionary *_cacheFileAttributes = [_managerfileAttributesAtPath:
[_cacheDirectory stringByAppendingPathComponent:_cacheFilePath]
traverseLink:YES];
_cacheFolderSize += [_cacheFileAttributes fileSize];
}
// 单位是字节
return _cacheFolderSize;
}
文/koreadragon(简书作者)
原文链接:http://www.jianshu.com/p/71e519890c25http://www.jianshu.com/p/71e519890c25
原文链接:http://www.jianshu.com/p/71e519890c25http://www.jianshu.com/p/71e519890c25