iOS-收集的不常用却实用的小方法和技巧
来源:互联网 发布:软件测试简历项目经验 编辑:程序博客网 时间:2024/05/16 19:28
1.颜色转变成图片
- (UIImage *)createImageWithColor:(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;}
2.app评分跳转
-(void)goToAppStore{ NSString *str = [NSString stringWithFormat: @"itms-apps://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=%d",547203890]; [[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];}
3.获取当前系统语言环境
NSUserDefaults *defs = [NSUserDefaults standardUserDefaults];NSArray *languages = [defs objectForKey:@"AppleLanguages"];NSString *preferredLang = [languages objectAtIndex:0];
4.计算字符串的高度
NSString *str = @"chuanzhang";NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc]init];paragraphStyle.lineBreakMode = NSLineBreakByWordWrapping;NSDictionary *dicAtt = [NSDictionary dictionaryWithObjectsAndKeys:[UIFont systemFontOfSize:15],NSFontAttributeName,paragraphStyle.copy,NSParagraphStyleAttributeName, nil];NSAttributedString *attribute = [[NSAttributedString alloc]initWithString:str attributes:dicAtt];CGRect frame = [attribute boundingRectWithSize:CGSizeMake(200, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin context:nil];
5.强行关闭app的方法
// 私有API[[UIApplication sharedApplication] performSelector:@selector(terminateWithSuccess)];// C语言方法exit(0);
6.如何快速的查看一段代码的执行时间
#define TICK NSDate *startTime = [NSDate date]#define TOCK NSLog(@"Time: %f", -[startTime timeIntervalSinceNow])// 在想要查看执行时间的代码的地方进行这么处理TICK//do your work hereTOCK
7.在使用view的缩放的时候,layer.border.width随着view的放大,会出现锯齿化的问题,解决这个问题需要设置这个属性。
self.layer.allowsEdgeAntialiasing = YES;
8.instrument中time profile 中的self, #self,%self各代表什么 ?
下面引用了一下网上的具体内容
Self is "The number of times the symbol calls itself." according to the Apple Docs on the Time Profiler.
From the way the numbers look though, it seems self is the summed duration of samples that had this symbol at the bottom of its stack trace. That would make:
self: the number of samples where this symbol was at the bottom of the stack trace
% self: the percent of self samples relative to total samples of currently displayed call tree
(eg - #self / total samples).
So this wouldn't tell you how many times a method was called. But it would give you an idea how much time is spent in a method or lower in the call tree.
9.神器计算图片位置的函数:AVMakeRectWithAspectRatioInsideRect()
通过这个函数,我们可以计算一个图片放在另一个 view 按照一定的比例居中显示,可能说的我比较抽象,还是用图来显示,可以说它可以直接一个 image 以任何的比例显示显示在 imageview 中居中所处的位置,拿 UIViewContontAspectFit来演示
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(100, 100, 300, 300)];imageView.center = self.view.center;imageView.backgroundColor = [UIColor redColor];imageView.contentMode = UIViewContentModeScaleAspectFit;UIImage *image = [UIImage imageNamed:@"mm.jpg"];imageView.image = image; CGRect iamgeAspectRect = AVMakeRectWithAspectRatioInsideRect(image.size, imageView.bounds);NSLog(@"iamgeAspectRect = %@, imageView =%@",NSStringFromCGRect(iamgeAspectRect),NSStringFromCGRect(imageView.frame));[self.view addSubview:imageView];
图片显示如下:
log 打因结果如下:
iamgeAspectRect = {{37.563884156729145, 0}, {224.87223168654171, 300}}, imageView ={{37.5, 183.5}, {300, 300}}
可以从 log 得出 对应的 image 以 aspectFit 的方式在 imageView 的位置,在 imageView 中的位置是(37.5,0)。这样你根本不需要任何多的代码来计算了。(ps:这个函数是在 AV框架的,童鞋们自行导入。)
具体它的其他的好处,如果你是做相机或者图片处理的你就知道它的好处了,什么处理横屏照片了,16:9,1:1,4:3图片在控件中的位置,控件上的点对应图片上的点的位置拉,等等。
10.关于 如果一个矩形如果做了平移旋转缩放等一系列操作之后,上下左右的四个点(甚至矩形上任意一个点)的位置。
CGPoint originalCenter = CGPointApplyAffineTransform(_mStyleLeftEyeView.center, CGAffineTransformInvert(_mStyleLeftEyeView.transform));//1左眼内眼角CGPoint bottomRight = originalCenter;bottomRight.x += _mStyleLeftEyeView.bounds.size.width / 2;bottomRight.y += _mStyleLeftEyeView.bounds.size.height / 2;bottomRight = CGPointApplyAffineTransform(bottomRight, _mStyleLeftEyeView.transform);
首先这个 styleLeftView 就是一个矩形的 view,这里以右下角的点做示范,做无论做了任何的 tranform 之后都可以得到它的点的位置
11.tableViewCell上的button,点击获取所在row
UITableViewCell *cell = (UITableViewCell *)[[btn superview] superview];NSIndexPath * indexPath = [self.tableView indexPathForCell:cell];
12.设置粘贴内容
[UIPasteboard generalPasteboard].string = @"string";// 获取粘贴内容 NSString *string = [UIPasteboard generalPasteboard].string;
13.iPhone为了节省电力所以有一个自动休眠机制,如果想让我们的APP不自动进入休眠只需要设置 UIApplication的idleTimerDisabled 属性为 YES 即可。(切勿滥用)
示例:
[UIApplication sharedApplication].idleTimerDisabled = YES;
14.UIApplicationUserDidTakeScreenshotNotification
通知,当用户截屏时触发
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(screenCapture) name:UIApplicationUserDidTakeScreenshotNotification object:nil];- (void)screenCapture{ // doSomething}
原文链接:http://www.jianshu.com/p/a492eb6ad7fa
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
- iOS-收集的不常用却实用的小方法和技巧
- iOS开发之-收集的不常用却实用的小方法和技巧
- iOS-收集的不常用却实用的小方法和技巧
- iOS开发之-收集的不常用却实用的小方法和技巧
- 正则中不常用却很实用的技巧
- iOS开发:常用、实用的方法和技巧
- photoshop简单但却实用的小技巧
- ubuntu中实用却不常用的命令
- iOS 10 个实用小技巧(总有你不知道的和你会用到的)
- iOS 10 个实用小技巧(总有你不知道的和你会用到的)
- iOS 10 个实用小技巧(总有你不知道的和你会用到的)
- iOS 10 个实用小技巧(总有你不知道的和你会用到的)
- iOS 10 个实用小技巧(总有你不知道的和你会用到的)
- iOS 10个实用小技巧(总有你不知道的和你会用到的)
- iOS开发的一些实用小技巧
- iOS----收集的一些小技巧
- 12条实用的 Windows7 小技巧总结收集
- ios中常用的小技巧大全(总有你不知道的和你会用到的)
- 解决win10系统flash player无法播放,升级
- Android之NestedScrollView 嵌套 RecyclerView 滑动冲突的问题
- 各种数据库连接URL关键代码
- 内存优化
- Openfiler简介
- iOS-收集的不常用却实用的小方法和技巧
- 深度剖析:如何实现一个 Virtual DOM 算法
- CollapsingToolbarLayout之layout_scrollFlags
- How to restart USB device(如何重启USB设备)
- C语言变量赋值语句的语法解析算法实现
- Linux下网络流量实时监控工具大全
- Js中获取超链接里面传递的参数值
- 我的第一个网站(一)
- SQL 2005 创建表报错:类别不支持集合(或类别对象为远程对象)