iOS-收集的不常用却实用的小方法和技巧

转载 2016年08月31日 16:48:32

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 here
TOCK

7.在使用view的缩放的时候,layer.border.width随着view的放大,会出现锯齿化的问题,解决这个问题需要设置这个属性。

self.layer.allowsEdgeAntialiasing = YES;

8.instrument中time profile 中的self, #self,%self各代表什么 ?


333.jpeg

下面引用了一下网上的具体内容

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];

图片显示如下:


mm.png

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开发之-收集的不常用却实用的小方法和技巧

1.颜色转变成图片 - (UIImage *)createImageWithColor:(UIColor *)color { CGRect rect = CGRectMake(0.0f, 0...

iOS开发:常用、实用的方法和技巧

- (BOOL)isChineseFirst:(NSString *)firstString { //是否以中文开头(unicode中文编码范围是0x4e00~0x9fa5) int ...

iOS实用技巧 - 私有推送实现方法

转载于: http://my.oschina.net/non6/blog/308827 可以参考:http://blog.csdn.net/zhangkongzhongyun/article/deta...

Jquery常用技巧和方法收集

Tip15:Jquery触发回车事件 $(function () { $('#target').bind('keyup', function (event)...

最常用和实用的CSS技巧

1.重置浏览器的字体大小  重置浏览器的默认值 ,然后重设浏览器的字体大小你可以使用雅虎的用户界面重置的CSS方案 ,如果你不想下载9MB的文件,代码如下: body,div,dl,d...
  • pjbwan
  • pjbwan
  • 2014年11月21日 13:13
  • 235

JavaScript 字符串实用常用操作技巧

字符串截取1. substring()xString.substring(start,end) substring()是最常用到的字符串截取方法,它可以接收两个参数(参数不能为负值),分别是要截...

CSS最常用和实用的技巧[转]

下面是CSS最常用和实用的技巧。 1.重置浏览器的字体大小 重置浏览器的默认值 ,然后重设浏览器的字体大小你可以使用雅虎的用户界面重置的CSS方案 ,如果你不想下载9MB的文件,代码如下: ...
  • god2030
  • god2030
  • 2016年04月13日 09:40
  • 114

ORACLE不常用但实用的技巧- 树查询 level用法

树查询 使用树查询的前提条件是: 在一条记录中记录了当前节点的ID和这个节点的父ID。 注意:一旦数据中出现了循环记录,如两个节点互为对方的父结点,系统就会报 ORA-01436错误(ORA-0143...

实用mac下常用快捷键和相关使用技巧

Command-C 将所选项拷贝到剪贴板。这同样适用于 Finder 中的文件。 Command-V 将剪贴板的内容粘贴到当前文稿或应用中。这同样适用于 Finder 中的文件。 Comm...
  • ourpush
  • ourpush
  • 2016年08月31日 23:08
  • 619

一些常用的vs调试技巧 很实用

肖锐(Cooki)个人原创,欢迎转载,转载请注明地址,肖锐(Cooki)的技术博客 http://blog.csdn.net/xiao0026  这段时间因为换了环境, 主要用windows来做开发。...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS-收集的不常用却实用的小方法和技巧
举报原因:
原因补充:

(最多只允许输入30个字)