iOS开发之-收集的不常用却实用的小方法和技巧
来源:互联网 发布:python 字符串替换 编辑:程序博客网 时间:2024/05/16 23:39
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开发:常用、实用的方法和技巧
- 正则中不常用却很实用的技巧
- iOS开发的一些实用小技巧
- iOS开发一些实用的小方法
- photoshop简单但却实用的小技巧
- ubuntu中实用却不常用的命令
- iOS开发小技巧:私有API及不常用的API汇总
- android开发之常用的小技巧
- iOS 10 个实用小技巧(总有你不知道的和你会用到的)
- iOS 10 个实用小技巧(总有你不知道的和你会用到的)
- iOS 10 个实用小技巧(总有你不知道的和你会用到的)
- iOS 10 个实用小技巧(总有你不知道的和你会用到的)
- iOS 10 个实用小技巧(总有你不知道的和你会用到的)
- iOS 10个实用小技巧(总有你不知道的和你会用到的)
- Win7环境Python安装BeautifulSoup
- 优化编码习惯,高并发下条件判断范围尽量缩小到需要的地方
- sdut oj2482 二叉排序树
- Deep Convolutional Neural Networks for Microscopy-Based Point of Care Diagnostics 阅读
- Atitit.php nginx页面空白 并返回500的解决
- iOS开发之-收集的不常用却实用的小方法和技巧
- VideoView视频开发
- 清除在使用中的COM口编号
- 自定义View控件详解(一) :Android LayoutInflater原理分析,带你一步步深入了解View
- Leetcode之Unique Paths II
- Linux_Linux命令_nohup_后台挂起进程_一些使用事项
- [Learn Android Studio 汉化教程]Reminders实验(一)
- 字体图标以及字体图标的制作
- MAVEN 项目jar 包不编译到 tomcat 的lib目录下