定義:
1.按鈕并切割圓角:
<#按鈕名#>.layer.borderWidth = 1.0;//邊框線長(zhǎng)度
self.<#按鈕名#>.layer.borderColor = [UIColor grayColor].CGColor;//邊框線顏色
self.<#按鈕名#>.layer.cornerRadius=10;//切割角度半徑
self.<#按鈕名#>.layer.masksToBounds=YES;//切割部分是否隱藏
2.提醒界面
#pragma mark 提醒界面
-(void)tixingjiemian:(NSString* )name{
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:name message:@"" preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"確定" style:UIAlertActionStyleDestructive handler:nil];
[alertController addAction:cancelAction];
[self presentViewController:alertController animated:YES completion:nil];
//修改title
NSMutableAttributedString *alertControllerStr = [[NSMutableAttributedString alloc] initWithString:name];
[alertControllerStr addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(0, 4)];
[alertControllerStr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:17] range:NSMakeRange(0, 4)];
[alertController setValue:alertControllerStr forKey:@"attributedTitle"];
[cancelAction setValue:[UIColor blueColor] forKey:@"titleTextColor"];
}
3.刪除user defaults信息
- (void)resetDefaults
{
NSUserDefaults * defs = [NSUserDefaults standardUserDefaults];
NSDictionary * dict = [defs dictionaryRepresentation];
for (id key in dict)
{
[defs removeObjectForKey:key];
}
[defs synchronize];
}
4.快捷創(chuàng)建屏幕尺寸
/** 屏幕尺寸參數(shù) */
#define SCREEN_WIDTH? ? ? ? ([UIScreen mainScreen].bounds.size.width)
#define SCREEN_HEIGHT? ? ? ([UIScreen mainScreen].bounds.size.height)
5.更改cell選中的背景
UIView *myview = [[UIView alloc] init];
myview.frame = CGRectMake(0, 0, 320, 47);
myview.backgroundColor = [UIColorcolorWithPatternImage:[UIImage imageNamed:@"0006.png"]];
cell.selectedBackgroundView = my view;
6.圖片水印
#pragma mark 圖片的水印
-(UIImage *)watermarkImage:(UIImage *)img withName:(NSString *)name
{
NSDate *? senddate=[NSDate date];
NSDateFormatter? *dateformatter=[[NSDateFormatter alloc] init];
[dateformatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"];
NSString * locationString=[dateformatter stringFromDate:senddate];
NSString* mark = name;
mark=locationString;
NSLog(@"%@",mark);
int w = img.size.width;
int h = img.size.height;
UIGraphicsBeginImageContext(img.size);
[img drawInRect:CGRectMake(0,0 , w, h)];
NSDictionary *attr = @{
NSFontAttributeName: [UIFont boldSystemFontOfSize:14],? //設(shè)置字體
NSForegroundColorAttributeName : [UIColor redColor]? //設(shè)置字體顏色
};
[mark drawInRect:CGRectMake(w -160, 10, 160, 30) withAttributes:attr];? ? ? //右上角
UIImage *aimg = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return aimg;
}
7.圖片壓縮
#pragma mark 圖片壓縮
-(UIImage*)imageWithImage:(UIImage*)image scaledToSize:(CGSize)newSize
{
UIGraphicsBeginImageContext(newSize);
[image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}
8.圖片模糊處理效果
#import- (UIImage *)blurryImage:(UIImage *)image withBlurLevel:(CGFloat)blur
{
int boxSize = (int)blur;//模糊度
if (blur>=30) {
boxSize=1;
}else{
boxSize -= (boxSize % 2) +1;
}
CGImageRef img = image.CGImage;
//圖像緩存,輸入緩存,輸出緩存
vImage_Buffer inBuffer, outBuffer;
vImage_Error error;
void *pixelBuffer;//像素緩存
CGDataProviderRef inProvider =CGImageGetDataProvider(img);
CFDataRef inBitmapData =CGDataProviderCopyData(inProvider);
inBuffer.width =CGImageGetWidth(img);
inBuffer.height =CGImageGetHeight(img);
inBuffer.rowBytes =CGImageGetBytesPerRow(img);
inBuffer.data = (void*)CFDataGetBytePtr(inBitmapData);
//像數(shù)緩存,字節(jié)行*圖片高
pixelBuffer = malloc(CGImageGetBytesPerRow(img) *CGImageGetHeight(img));
outBuffer.data = pixelBuffer;
outBuffer.width =CGImageGetWidth(img);
outBuffer.height =CGImageGetHeight(img);
outBuffer.rowBytes =CGImageGetBytesPerRow(img);
// 第三個(gè)中間的緩存區(qū),抗鋸齒的效果
void *pixelBuffer2 =malloc(CGImageGetBytesPerRow(img) *CGImageGetHeight(img));
vImage_Buffer outBuffer2;
outBuffer2.data = pixelBuffer2;
outBuffer2.width =CGImageGetWidth(img);
outBuffer2.height =CGImageGetHeight(img);
outBuffer2.rowBytes =CGImageGetBytesPerRow(img);
error = vImageBoxConvolve_ARGB8888(&inBuffer, &outBuffer2,NULL,0,0, boxSize, boxSize,NULL, kvImageEdgeExtend);
error = vImageBoxConvolve_ARGB8888(&inBuffer, &outBuffer,NULL,0,0, boxSize, boxSize,NULL, kvImageEdgeExtend);
CGColorSpaceRef colorSpace =CGColorSpaceCreateDeviceRGB();
CGContextRef ctx =CGBitmapContextCreate(
outBuffer.data,
outBuffer.width,
outBuffer.height,
outBuffer.rowBytes,
colorSpace,
CGImageGetBitmapInfo(image.CGImage));
CGImageRef imageRef =CGBitmapContextCreateImage(ctx);
UIImage *returnImage = [UIImage imageWithCGImage:imageRef];
//清理內(nèi)存
CGContextRelease(ctx);
CGColorSpaceRelease(colorSpace);
free(pixelBuffer);
free(pixelBuffer2);
CFRelease(inBitmapData);
CGColorSpaceRelease(colorSpace);
CGImageRelease(imageRef);
return returnImage;
}
9.定義類型
@property (strong, nonatomic) NSString *<#類型名#>;/**< <#備注#> */
@property (copy, nonatomic) NSString *<#name#>;/**< <#備注#> */
@property (nonatomic,assign)BOOL <#bool名#>;/**< <#備注#> */
@property (nonatomic, assign) int <#類型名#>;/**< <#備注#> */
10.郵箱格式判斷
-(BOOL)isValidateEmail:(NSString *)email
{
NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES%@",emailRegex];
return [emailTest evaluateWithObject:email];
}
11.阿拉伯?dāng)?shù)字轉(zhuǎn)中文
+(NSString *)translation:(NSString *)arebic
{
NSString *str = arebic;
NSArray *arabic_numerals = @[@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",@"0"];
NSArray *chinese_numerals = @[@"一",@"二",@"三",@"四",@"五",@"六",@"七",@"八",@"九",@"零"];
NSArray *digits = @[@"個(gè)",@"十",@"百",@"千",@"萬(wàn)",@"十",@"百",@"千",@"億",@"十",@"百",@"千",@"兆"];
NSDictionary *dictionary = [NSDictionary dictionaryWithObjects:chinese_numerals forKeys:arabic_numerals];
NSMutableArray *sums = [NSMutableArray array];
for (int i = 0; i < str.length; i ++) {
NSString *substr = [str substringWithRange:NSMakeRange(i, 1)];
NSString *a = [dictionary objectForKey:substr];
NSString *b = digits[str.length -i-1];
NSString *sum = [a stringByAppendingString:b];
if ([a isEqualToString:chinese_numerals[9]])
{
if([b isEqualToString:digits[4]] || [b isEqualToString:digits[8]])
{
sum = b;
if ([[sums lastObject] isEqualToString:chinese_numerals[9]])
{
[sums removeLastObject];
}
}else
{
sum = chinese_numerals[9];
}
if ([[sums lastObject] isEqualToString:sum])
{
continue;
}
}
[sums addObject:sum];
}
NSString *sumStr = [sums componentsJoinedByString:@""];
NSString *chinese = [sumStr substringToIndex:sumStr.length-1];
NSLog(@"%@",str);
NSLog(@"%@",chinese);
return chinese;
}
12.建立按鈕
CGRect frame = CGRectMake(0, 400, 72.0, 37.0);
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
button.frame = frame;
[button setTitle:@"新添加的按鈕" forState: UIControlStateNormal];
button.backgroundColor = [UIColor clearColor];
button.tag = 2000;
[button addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:button];
13.查找一個(gè)視圖里面的所有視圖
- (NSMutableArray *)allSubViewsForView:(UIView *)view
{
NSMutableArray *array = [NSMutableArray arrayWithCapacity:0];
for (UIView *subView in view.subviews)
{
[array addObject:subView];
if (subView.subviews.count > 0)
{
[array addObjectsFromArray:[self allSubViewsForView:subView]];
}
}
return array;
}
14.修改狀態(tài)欄顏色
- (void)setStatusBarBackgroundColor:(UIColor *)color
{
UIView *statusBar = [[[UIApplication sharedApplication] valueForKey:@"statusBarWindow"] valueForKey:@"statusBar"];
if ([statusBar respondsToSelector:@selector(setBackgroundColor:)])
{
statusBar.backgroundColor = color;
}
}
15.修改UITextField中placeholder的文字顏色
[textField setValue:[UIColor redColor] forKeyPath:@"_placeholderLabel.textColor"];
16.密碼格式判斷
- (BOOL)judgePassWordLegal:(NSString *)pass{
BOOL result = false;
if ([pass length] >= 6 && [pass length] <=12){
// 判斷長(zhǎng)度大于8位后再接著判斷是否同時(shí)包含數(shù)字和字符
NSString * regex = @"^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,12}$";
NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
result = [pred evaluateWithObject:pass];
}
return result;
}
17.菊花界面
#pragma mark 建立并開(kāi)始菊花界面請(qǐng)求
-(void)beginjuhua{
UIActivityIndicatorView *testActivityIndicator = [[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
testActivityIndicator.center = CGPointMake(100.0f, 100.0f);//只能設(shè)置中心缰贝,不能設(shè)置大小
[testActivityIndicator setFrame :CGRectMake(100, 200, 100, 100)];//不建議這樣設(shè)置桨嫁,因?yàn)?/p>
[self.view addSubview:testActivityIndicator];
testActivityIndicator.color = [UIColor greenColor]; // 改變?nèi)θΦ念伾珵榧t色; iOS5引入
[testActivityIndicator startAnimating]; // 開(kāi)始旋轉(zhuǎn)
self.testview=testActivityIndicator;
}
#pragma mark 結(jié)束并移除菊花界面
-(void)endjuhua{
dispatch_async(dispatch_get_main_queue(), ^{
[_testview stopAnimating]; // 結(jié)束旋轉(zhuǎn)
[_testview removeFromSuperview]; //當(dāng)旋轉(zhuǎn)結(jié)束時(shí)移除
});
}
18.數(shù)組求和求平均求最大最小值
NSArray *array = [NSArray arrayWithObjects:@"2.0", @"2.3", @"3.0", @"4.0", @"10", nil];
CGFloat sum = [[array valueForKeyPath:@"@sum.floatValue"] floatValue];
CGFloat avg = [[array valueForKeyPath:@"@avg.floatValue"] floatValue];
CGFloat max =[[array valueForKeyPath:@"@max.floatValue"] floatValue];
CGFloat min =[[array valueForKeyPath:@"@min.floatValue"] floatValue];
NSLog(@"%f\n%f\n%f\n%f",sum,avg,max,min);
19.照片選擇代理
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
self.imageview.image = image;
[picker dismissViewControllerAnimated:NO completion:nil];
UIImage *originImage = self.imageview.image;
NSData *data = UIImageJPEGRepresentation(originImage, 1.10f);
NSString *encodedImageStr = [data base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
_image1=encodedImageStr;
[self tanchukuang];
}
20.鍵盤透明
textField.keyboardAppearance = UIKeyboardAppearanceAlert;
21.截取屏幕圖片
UIGraphicsBeginImageContext(CGSizeMake(200,400));
//renderInContext 呈現(xiàn)接受者及其子范圍到指定的上下文
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
//返回一個(gè)基于當(dāng)前圖形上下文的圖片
UIImage *aImage = UIGraphicsGetImageFromCurrentImageContext();
//移除棧頂?shù)幕诋?dāng)前位圖的圖形上下文
UIGraphicsEndImageContext();
//以png格式返回指定圖片的數(shù)據(jù)
imageData = UIImagePNGRepresentation(aImage);
22.AFN_PHP方式網(wǎng)絡(luò)請(qǐng)求
AFHTTPSessionManager *mgr = [AFHTTPSessionManager manager];
NSDictionary *params = @{
@"user_id":self.userinfo.user_id,
};
[mgr setResponseSerializer:[AFHTTPResponseSerializer serializer]];
[mgr POST:GAINMYINFOMATION parameters:params progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id? _Nullable responseObject) {
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:responseObject options:kNilOptions error:nil];
NSArray *myarry= [dic valueForKey:@"data"];
NSLog(@"%@",myarry);
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
}];
23.GCD定時(shí)器
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_source_t timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0,queue);
dispatch_source_set_timer(timer,dispatch_walltime(NULL, 0),1.0*NSEC_PER_SEC, 0); //每秒執(zhí)行
dispatch_source_set_event_handler(timer, ^{
//倒計(jì)時(shí)結(jié)束蓖捶,關(guān)閉
dispatch_source_cancel(timer);
dispatch_async(dispatch_get_main_queue(), ^{
});
});
dispatch_resume(timer);
24.for循環(huán)
for (int i=0; i<<#循環(huán)次數(shù)#>; i++) {
}
25.app跳轉(zhuǎn)APPstore
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=APPID"]];
26.navigationBar根據(jù)滑動(dòng)距離的漸變色實(shí)現(xiàn)
//第一種
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
CGFloat offsetToShow = 200.0;//滑動(dòng)多少就完全顯示
CGFloat alpha = 1 - (offsetToShow - scrollView.contentOffset.y) / offsetToShow;
[[self.navigationController.navigationBar subviews] objectAtIndex:0].alpha = alpha;
}
//第二種
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
CGFloat offsetToShow = 200.0;
CGFloat alpha = 1 - (offsetToShow - scrollView.contentOffset.y) / offsetToShow;
[self.navigationController.navigationBar setShadowImage:[UIImage new]];
[self.navigationController.navigationBar setBackgroundImage:[self imageWithColor:[[UIColor orangeColor]colorWithAlphaComponent:alpha]] forBarMetrics:UIBarMetricsDefault];
}
//生成一張純色的圖片
- (UIImage *)imageWithColor:(UIColor *)color
{
CGRect rect = CGRectMake(0.0f, 0.0f, 1.0f, 1.0f);
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, [color CGColor]);
CGContextFillRect(context, rect);
UIImage *theImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return theImage;
}
27.UITableView的plain樣式下盔憨,取消區(qū)頭停滯效果
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
CGFloat sectionHeaderHeight = sectionHead.height;
if (scrollView.contentOffset.y<=sectionHeaderHeight&&scrollView;.contentOffset.y>=0)
{
scrollView.contentInset = UIEdgeInsetsMake(-scrollView.contentOffset.y, 0, 0, 0);
}
else if(scrollView.contentOffset.y>=sectionHeaderHeight)
{
scrollView.contentInset = UIEdgeInsetsMake(-sectionHeaderHeight, 0, 0, 0);
}
}
28.UITextField的字?jǐn)?shù)限制
//在viewDidLoad中注冊(cè)通知
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(textFiledEditChanged:)
name:@"UITextFieldTextDidChangeNotification" object:myTextField];
//實(shí)現(xiàn)監(jiān)聽(tīng)方法
#pragma mark - Notification Method
-(void)textFieldEditChanged:(NSNotification *)obj
{
UITextField *textField = (UITextField *)obj.object;
NSString *toBeString = textField.text;
//獲取高亮部分
UITextRange *selectedRange = [textField markedTextRange];
UITextPosition *position = [textField positionFromPosition:selectedRange.start offset:0];
// 沒(méi)有高亮選擇的字蜻牢,則對(duì)已輸入的文字進(jìn)行字?jǐn)?shù)統(tǒng)計(jì)和限制
if (!position)
{
if (toBeString.length > MAX_STARWORDS_LENGTH)
{
NSRange rangeIndex = [toBeString rangeOfComposedCharacterSequenceAtIndex:MAX_STARWORDS_LENGTH];
if (rangeIndex.length == 1)
{
textField.text = [toBeString substringToIndex:MAX_STARWORDS_LENGTH];
}
else
{
NSRange rangeRange = [toBeString rangeOfComposedCharacterSequencesForRange:NSMakeRange(0, MAX_STARWORDS_LENGTH)];
textField.text = [toBeString substringWithRange:rangeRange];
}
}
}
}
29.UILabel在規(guī)定長(zhǎng)度范圍內(nèi),自適應(yīng)字體,以完全顯示文本
[_titleLabelmas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_offset(bItemMargin);
make.centerY.mas_equalTo(0);
make.width.mas_lessThanOrEqualTo(SCREEN_WIDTH - 13);
}];
_titleLabel.adjustsFontSizeToFitWidth =YES;
_titleLabel.minimumScaleFactor =0.5;
30.XML解析
#pragma mark 遍歷查找xml中文件的元素
-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary*)attributeDict{
_currentElementName = elementName;
[self endjuhua];
if ([_currentElementName isEqualToString:@"checkempResult"]) {
_isCheck = true;
_returnresult = @"";
}
}
#pragma mark 把第一個(gè)代理中我們要找的信息存儲(chǔ)在currentstring中并把要找的信息空格和換行符號(hào)去除
-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{
if ([_currentElementName isEqualToString:@"checkempResult"]) {
_isCheck = true;
_returnresult =[_returnresult stringByAppendingString:string] ;
self.peoplemessage= [self.returnresult componentsSeparatedByString:@";"];
}
}
#pragma mark 把上部的信息存儲(chǔ)到數(shù)據(jù)中
-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName{
}
#pragma mark 解析結(jié)束數(shù)據(jù)
- (void)parserDidEndDocument:(NSXMLParser *)parser{
dispatch_async(dispatch_get_main_queue(), ^{
});
}
31.webview創(chuàng)建
#pragma mark--webView
-(UIWebView *)webView {
if (!_webView) {
_webView = [[UIWebView alloc]initWithFrame:CGRectMake(0, 50, SCREEN_WIDTH, SCREEN_HEIGHT)];
_webView.scalesPageToFit = YES;
_webView.delegate = self;
_webView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
}
return _webView;
}
#pragma mark--webview的delegate
/** start */
-(void)webViewDidStartLoad:(UIWebView *)webView {
}
/** start loading */
-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
return YES;
}
/** finish */
-(void)webViewDidFinishLoad:(UIWebView *)webView {
}
/** error */
-(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error {
}
32.過(guò)濾特殊字符串
// 定義一個(gè)特殊字符的集合
NSCharacterSet *set = [NSCharacterSet characterSetWithCharactersInString:
? ? ? ? ? ? ? ? ? ? ? @"@/:罪既;()¥「」"、[]{}#%-*+=_\\|~<>$€^?'@#$%^&*()_+'\""];
// 過(guò)濾字符串的特殊字符
NSString *newString = [trimString stringByTrimmingCharactersInSet:set];
33.自帶請(qǐng)求網(wǎng)絡(luò)(c#webserver)
#pragma mark檢查儲(chǔ)位-(void)storage:(NSString *)message{ NSString *urlStr = @"http://portal.flexium.com.cn:81/changestorages.asmx"; NSURL *url = [NSURL URLWithString:urlStr]; // 2.創(chuàng)建session對(duì)象 NSURLSession *session = [NSURLSession sharedSession]; // 3.創(chuàng)建請(qǐng)求對(duì)象 NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url]; // 4.設(shè)置請(qǐng)求方式與參數(shù) request.HTTPMethod = @"POST"; NSString *str1=[NSString stringWithFormat:@"?xml version='1.0' encoding='utf-8'?%@%@%@%@",message,self.boxmessage[3],self.boxmessage[2],self.peoplemessage[2]]; NSString *dataStr = [NSString stringWithFormat:@"%@",str1]; NSData *data = [dataStr dataUsingEncoding:NSUTF8StringEncoding]; request.HTTPBody = data; NSString *msgLength= [NSString stringWithFormat:@"%zd",(int*)dataStr.length]; [request setValue:@"text/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"]; [request setValue:msgLength forHTTPHeaderField:@"Content-Length"]; [request setValue:@"http://tempuri.org/checknewstorage" forHTTPHeaderField:@"Action"]; // 5.進(jìn)行鏈接請(qǐng)求數(shù)據(jù) NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) { if (error) { NSLog(@"請(qǐng)求數(shù)據(jù)出錯(cuò)!----%@",error.description); [self intenererror]; } else { [self beginjuhua]; self.parser=[[NSXMLParser alloc]initWithData:data]; NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; NSLog(@"%@",result); //添加代理 self.parser.delegate=self; //self.list = [NSMutableArray arrayWithCapacity:9]; //這一步不能少汇在! self.parser.shouldResolveExternalEntities=true; //開(kāi)始解析 [self.parser parse]; } }]; // 6.開(kāi)啟請(qǐng)求數(shù)據(jù) [dataTask resume];}
34.?視頻格式轉(zhuǎn)換
#pragma mark 視頻格式轉(zhuǎn)換
- (void) convertVideoQuailtyWithInputURL:(NSURL*)inputURL
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? outputURL:(NSURL*)outputURL
? ? ? ? ? ? ? ? ? ? ? ? completeHandler:(void (^)(AVAssetExportSession*))handler
{
? ? AVURLAsset *avAsset = [AVURLAsset URLAssetWithURL:inputURL options:nil];
? ? AVAssetExportSession *exportSession = [[AVAssetExportSession alloc] initWithAsset:avAsset presetName:AVAssetExportPresetMediumQuality];
? ? // NSLog(resultPath);
? ? exportSession.outputURL = outputURL;
? ? exportSession.outputFileType = AVFileTypeMPEG4; //轉(zhuǎn)換的格式
? ? exportSession.shouldOptimizeForNetworkUse= YES;
? ? [exportSession exportAsynchronouslyWithCompletionHandler:^(void)
? ? {
? ? }];
}
35.播放音樂(lè)
-(void)playmusics
{
? ? NSURL *url = [[NSBundle mainBundle] URLForResource:@"7070" withExtension:@"mp3"];
? ? NSError *error = nil;
? ? self.player = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
? ? self.player.volume = 0.5;//范圍為(0到1)翰萨;
? ? //設(shè)置循環(huán)次數(shù),如果為負(fù)數(shù)糕殉,就是無(wú)限循環(huán)
? ? self.player.numberOfLoops =0;
? ? //設(shè)置播放進(jìn)度
? ? self.player.currentTime = 0;
? ? //準(zhǔn)備播放
? ? [self.player prepareToPlay];
? ? [self.player play];
}
36.判斷WiFi或網(wǎng)絡(luò)
-(BOOL)panduannetworking{
? ? UIApplication *app = [UIApplication sharedApplication];
? ? NSArray *children = [[[app valueForKeyPath:@"statusBar"] valueForKeyPath:@"foregroundView"] subviews];
? ? int type = 0;
? ? for (id child in children) {
? ? ? ? if ([child isKindOfClass:NSClassFromString(@"UIStatusBarDataNetworkItemView")]) {
? ? ? ? ? ? type = [[child valueForKeyPath:@"dataNetworkType"] intValue];
? ? ? ? }
? ? }
? ? if (type==5) {
? ? ? ? return YES;
? ? } else{
? ? ? ? return NO;
? ? }
}
37.千分位
#pragma mark 金額千分位
- (NSString *)separatedDigitStringWithStr:(NSString *)digitString
{
? ? if (digitString.length <= 3) {
? ? ? ? return digitString;
? ? } else {
? ? ? ? NSMutableString *processString = [NSMutableString stringWithString:digitString];
? ? ? ? NSInteger location = processString.length - 3;
? ? ? ? NSMutableArray *processArray = [NSMutableArray array];
? ? ? ? while (location >= 0) {
? ? ? ? ? ? NSString *temp = [processString substringWithRange:NSMakeRange(location, 3)];
? ? ? ? ? ? [processArray addObject:temp];
? ? ? ? ? ? if (location < 3 && location > 0)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? NSString *t = [processString substringWithRange:NSMakeRange(0, location)];
? ? ? ? ? ? ? ? [processArray addObject:t];
? ? ? ? ? ? }
? ? ? ? ? ? location -= 3;
? ? ? ? }
? ? ? ? NSMutableArray *resultsArray = [NSMutableArray array];
? ? ? ? int k = 0;
? ? ? ? for (NSString *str in processArray)
? ? ? ? {
? ? ? ? ? ? k++;
? ? ? ? ? ? NSMutableString *tmp = [NSMutableString stringWithString:str];
? ? ? ? ? ? if (str.length > 2 && k < processArray.count )
? ? ? ? ? ? {
? ? ? ? ? ? ? ? [tmp insertString:@"," atIndex:0];
? ? ? ? ? ? ? ? [resultsArray addObject:tmp];
? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? [resultsArray addObject:tmp];
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? NSMutableString *resultString = [NSMutableString string];
? ? ? ? for (NSInteger i = resultsArray.count - 1 ; i >= 0; i--)
? ? ? ? {
? ? ? ? ? ? NSString *tmp = [resultsArray objectAtIndex:i];
? ? ? ? ? ? [resultString appendString:tmp];
? ? ? ? }
? ? ? ? return resultString;
? ? }
}
38.AFN訪問(wèn)webserver
-(void)webqingqiuurl:(NSString *)weburl xmlstr:(NSString *)xmlstr jiexmltype:(NSString *)xmltype {
? ? AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
? ? manager.responseSerializer = [AFXMLParserResponseSerializer serializer];
? ? // 設(shè)置請(qǐng)求超時(shí)時(shí)間
? ? manager.requestSerializer.timeoutInterval = 30;
? ? // 返回NSData
? ? manager.responseSerializer = [AFHTTPResponseSerializer serializer];
? ? // 設(shè)置請(qǐng)求頭
? ? [manager.requestSerializer setValue:@"text/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
? ? [manager.requestSerializer setValue:[NSString stringWithFormat:@"%zd", xmlstr.length] forHTTPHeaderField:@"Content-Length"];
? ? // 設(shè)置HTTPBody
? ? [manager.requestSerializer setQueryStringSerializationWithBlock:^NSString *(NSURLRequest *request, NSDictionary *parameters, NSError *__autoreleasing *error) {
? ? ? ? return xmlstr;
? ? }];
? ? [manager POST:weburl parameters:xmlstr progress:^(NSProgress * _Nonnull uploadProgress) {
? ? } success:^(NSURLSessionDataTask * _Nonnull task, id? _Nullable responseObject) {
? ? ? ? // 請(qǐng)求成功并且結(jié)果有值把結(jié)果傳出去
? ? ? ? NSString *resluts;
? ? ? ? NSString *newStr = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
? ? ? resluts= [self xmlstr:newStr xmltype:xmltype];
? ? ? ? NSLog(@"%@",resluts);
? ? ? ? //做你想做的事情
? ? ? ? NSLog(@"AFN請(qǐng)求成功 ") ;
? ? } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
? ? ? ? ? ? NSLog(@"AFN請(qǐng)求失敗-%@",error);
? ? }];
}
-(NSString *)xmlstr:(NSString *)xmlstr xmltype:(NSString *)xmltype {
? ? NSString *resultstr;
? ? NSArray *array=[xmlstr componentsSeparatedByString:[NSString stringWithFormat:@"<%@>",xmltype]];
? ? if (array.count>0) {
? ? ? ? NSArray *ARRAY2=[array[1]componentsSeparatedByString:[NSString stringWithFormat:@"",xmltype]];
? ? ? ? resultstr=ARRAY2[0];
? ? }else{
? ? ? ? resultstr=@"NG";
? ? }
? ? NSLog(@"結(jié)果為:%@",resultstr);
? ? return resultstr;
}