LeeHu的博客

Coding | iOS


  • 首页

  • 归档

  • 标签

iOS 打点统计代码实现

发表于 2016-01-07   |   分类于 iOS   |  

很早之前拜读了limboy 的iOS 统计打点那些事这篇文章,之后又了解了heapanalytics可视化全埋点,对我的帮助很大。

前期的简单做法是UI设计完界面后标坐标的时候同时给所有可点击控件标一个event id。 这个id可以为一个递增数字, 也可以为控件内随机点一个点后取x,y的组合, 也可以用随机数的, 只要保证唯一就可以了。 event id可以一类控件用一个id, 也可以按照界面将一类控件分成多个id。 一类控件用多个id的好处是数据组好过滤。然后开发写代码的时候将这个id写进控件里面, 然后全局拦截所有的点击事件, 加入埋点处理的代码。

阅读全文 »

优雅的description

发表于 2015-12-23   |   分类于 iOS   |  

在开发过程中,我们经常要打印并查看对象信息,一种是通过NSLog来输出一个对象的属性。

1
NSLog(@"Person = %@",person);

在构建打印字符串的时候,person对象会收到description消息,这个方法返回的信息就会取代格式字符串中的”%@”。另一种就是我们通过断点在控制台钟输入命令打印对象的属性

1
2
(lldb) po person
<Person: 0x17c39e30>
阅读全文 »

Effective Objective-C 2.0 笔记(三)

发表于 2015-12-21   |   分类于 iOS   |  

阅读全文 »

Effective Objective-C 2.0 笔记(二)

发表于 2015-12-12   |   分类于 iOS   |  

阅读全文 »

Effective Objective-C 2.0 笔记(一)

发表于 2015-12-11   |   分类于 iOS   |  

阅读全文 »

Find the current top view controller

发表于 2015-12-10   |   分类于 iOS   |  

Objective-C version

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

- (UIViewController *)topViewController{
return [self topViewController:[UIApplication sharedApplication].keyWindow.rootViewController];
}

- (UIViewController *)topViewController:(UIViewController *)rootViewController
{
if (rootViewController.presentedViewController == nil) {
UINavigationController *navigationController =
(UINavigationController *)rootViewController;
return [[navigationController viewControllers] lastObject];
}

if ([rootViewController.presentedViewController isMemberOfClass:[UINavigationController class]]) {
UINavigationController *navigationController = (UINavigationController *)rootViewController.presentedViewController;
UIViewController *lastViewController = [[navigationController viewControllers] lastObject];
return [self topViewController:lastViewController];
}

UIViewController *presentedViewController = (UIViewController *)rootViewController.presentedViewController;
return [self topViewController:presentedViewController];
}
阅读全文 »

Objective-C消息机制

发表于 2015-12-07   |   分类于 iOS   |  

在OC 中给nil发送一个消息是不会发生任何事情了,但是给一个object发送一个没有定义实现的消息是回发生crash。

1
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[Son name]: unrecognized selector sent to instance

在OC中,调用一个对象的方法,实际上是给对象发了一条消息,在编译Objective-C函数调用的语法时,会被翻译成一个C的函数调用:objc_msgSend(),例如:

1
2
[jeep name];
objc_msgSend(jeep, @selector(name));

阅读全文 »

UINavigationBar不同颜色的丝滑过度

发表于 2015-08-27   |   分类于 iOS   |  

之前在QQ的app中发现他的用户主页的NavigationBar是透明的而且与上一个有颜色的NavigationBar的过度非常丝滑

阅读全文 »

用appledoc生成文档

发表于 2015-08-07   |   分类于 iOS   |  

安装

1
2
3
git clone git://github.com/tomaz/appledoc.git
cd ./appledoc
sudo sh install-appledoc.sh

检验是否安装成功

1
2
➜  ~ appledoc --version
appledoc version: 2.2.1 (build 1333)
阅读全文 »

UIScrollView滚动停止监测

发表于 2015-07-07   |   分类于 iOS   |  

今天在做一个控件的动画,动画需求是这样的,当UICollectionView滚动开始和滚动结束的时候,一个底部控件需要做淡出淡入的效果。

在iOS中使用UIScrollView的子类的时候,需要知道UIScrollView滚动动画是否结束,一般我们都是通过UIScrollViewDelegate中去寻找方法。

阅读全文 »
123
LeeHu

LeeHu

学习总结 思考感悟 知识管理

21 日志
3 分类
12 标签
Links
  • bailaohe
  • mokaikai
  • lamborryan
© 2017 LeeHu
由 Hexo 强力驱动
主题 - NexT.Mist