定義:
1.按钮并切割圆角:
<#按鈕名#>.layer.borderWidth = 1.0;//邊框線長度
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.快捷创建屏幕尺寸
/** 屏幕尺寸参数 */
#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], //设置字体
NSForegroundColorAttributeName : [UIColor redColor] //设置字体颜色
};
[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);
//像数缓存,字节行*图片高
pixelBuffer = malloc(CGImageGetBytesPerRow(img) *CGImageGetHeight(img));
outBuffer.data = pixelBuffer;
outBuffer.width =CGImageGetWidth(img);
outBuffer.height =CGImageGetHeight(img);
outBuffer.rowBytes =CGImageGetBytesPerRow(img);
// 第三个中间的缓存区,抗锯齿的效果
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];
//清理内存
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.阿拉伯数字转中文
+(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 = @[@"个",@"十",@"百",@"千",@"万",@"十",@"百",@"千",@"亿",@"十",@"百",@"千",@"兆"];
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.查找一个视图里面的所有视图
- (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.修改状态栏颜色
- (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){
// 判断长度大于8位后再接着判断是否同时包含数字和字符
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 建立并开始菊花界面请求
-(void)beginjuhua{
UIActivityIndicatorView *testActivityIndicator = [[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
testActivityIndicator.center = CGPointMake(100.0f, 100.0f);//只能设置中心,不能设置大小
[testActivityIndicator setFrame :CGRectMake(100, 200, 100, 100)];//不建议这样设置,因为
[self.view addSubview:testActivityIndicator];
testActivityIndicator.color = [UIColor greenColor]; // 改变圈圈的颜色为红色; iOS5引入
[testActivityIndicator startAnimating]; // 开始旋转
self.testview=testActivityIndicator;
}
#pragma mark 结束并移除菊花界面
-(void)endjuhua{
dispatch_async(dispatch_get_main_queue(), ^{
[_testview stopAnimating]; // 结束旋转
[_testview removeFromSuperview]; //当旋转结束时移除
});
}
18.数组求和求平均求最大最小值
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 呈现接受者及其子范围到指定的上下文
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
//返回一个基于当前图形上下文的图片
UIImage *aImage = UIGraphicsGetImageFromCurrentImageContext();
//移除栈顶的基于当前位图的图形上下文
UIGraphicsEndImageContext();
//以png格式返回指定图片的数据
imageData = UIImagePNGRepresentation(aImage);
22.AFN_PHP方式网络请求
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定时器
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); //每秒执行
dispatch_source_set_event_handler(timer, ^{
//倒计时结束,关闭
dispatch_source_cancel(timer);
dispatch_async(dispatch_get_main_queue(), ^{
});
});
dispatch_resume(timer);
24.for循环
for (int i=0; i<<#循环次数#>; i++) {
}
25.app跳转APPstore
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=APPID"]];
26.navigationBar根据滑动距离的渐变色实现
//第一种
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
CGFloat offsetToShow = 200.0;//滑动多少就完全显示
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样式下,取消区头停滞效果
- (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的字数限制
//在viewDidLoad中注册通知
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(textFiledEditChanged:)
name:@"UITextFieldTextDidChangeNotification" object:myTextField];
//实现监听方法
#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];
// 没有高亮选择的字,则对已输入的文字进行字数统计和限制
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在规定长度范围内,自适应字体,以完全显示文本
[_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 把第一个代理中我们要找的信息存储在currentstring中并把要找的信息空格和换行符号去除
-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{
if ([_currentElementName isEqualToString:@"checkempResult"]) {
_isCheck = true;
_returnresult =[_returnresult stringByAppendingString:string] ;
self.peoplemessage= [self.returnresult componentsSeparatedByString:@";"];
}
}
#pragma mark 把上部的信息存储到数据中
-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName{
}
#pragma mark 解析结束数据
- (void)parserDidEndDocument:(NSXMLParser *)parser{
dispatch_async(dispatch_get_main_queue(), ^{
});
}
31.webview创建
#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.过滤特殊字符串
// 定义一个特殊字符的集合
NSCharacterSet *set = [NSCharacterSet characterSetWithCharactersInString:
@"@/:;()¥「」"、[]{}#%-*+=_\\|~<>$€^•'@#$%^&*()_+'\""];
// 过滤字符串的特殊字符
NSString *newString = [trimString stringByTrimmingCharactersInSet:set];
33.自带请求网络(c#webserver)
#pragma mark檢查儲位-(void)storage:(NSString *)message{ NSString *urlStr = @"http://portal.flexium.com.cn:81/changestorages.asmx"; NSURL *url = [NSURL URLWithString:urlStr]; // 2.创建session对象 NSURLSession *session = [NSURLSession sharedSession]; // 3.创建请求对象 NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url]; // 4.设置请求方式与参数 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.进行链接请求数据 NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) { if (error) { NSLog(@"请求数据出错!----%@",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; //开始解析 [self.parser parse]; } }]; // 6.开启请求数据 [dataTask resume];}
34. 视频格式转换
#pragma mark 视频格式转换
- (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; //转换的格式
exportSession.shouldOptimizeForNetworkUse= YES;
[exportSession exportAsynchronouslyWithCompletionHandler:^(void)
{
}];
}
35.播放音乐
-(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);
//设置循环次数,如果为负数,就是无限循环
self.player.numberOfLoops =0;
//设置播放进度
self.player.currentTime = 0;
//准备播放
[self.player prepareToPlay];
[self.player play];
}
36.判断WiFi或网络
-(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访问webserver
-(void)webqingqiuurl:(NSString *)weburl xmlstr:(NSString *)xmlstr jiexmltype:(NSString *)xmltype {
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.responseSerializer = [AFXMLParserResponseSerializer serializer];
// 设置请求超时时间
manager.requestSerializer.timeoutInterval = 30;
// 返回NSData
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
// 设置请求头
[manager.requestSerializer setValue:@"text/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
[manager.requestSerializer setValue:[NSString stringWithFormat:@"%zd", xmlstr.length] forHTTPHeaderField:@"Content-Length"];
// 设置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) {
// 请求成功并且结果有值把结果传出去
NSString *resluts;
NSString *newStr = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
resluts= [self xmlstr:newStr xmltype:xmltype];
NSLog(@"%@",resluts);
//做你想做的事情
NSLog(@"AFN请求成功 ") ;
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
NSLog(@"AFN请求失败-%@",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(@"結果為:%@",resultstr);
return resultstr;
}