IOS
lzmy
我就是我,不一样的哈哈
展开
-
NSUserDefaults和dispatch_once的注意点
今天在实现一个需求时,遇到了一些问题,记录如下。需求是这样的,要让一段代码在整个APP的生命周期内(这里的整个APP的生命周期是指app安装到卸载的时间内,而不是程序的运行生命周期)只执行一次,我最先想到的是使用dispatch_once来实现,但很可惜,dispatch_once内的代码是在程序的运行生命周期内执行一次。验证如下: static dispatch_once_t once;原创 2015-11-11 22:39:26 · 819 阅读 · 0 评论 -
UIToolBar实现高斯模糊
直接上具体代码UIToolbar *toolBar = [[UIToolbar alloc] initWithFrame:self.imageView.bounds];// 改变barStyle可以显示不同样式的高斯模糊toolBar.barStyle = UIBarStyleBlack; toolBar.backgroundColor = [UIColor colorWithWhi原创 2016-11-22 13:55:37 · 1254 阅读 · 0 评论 -
开发中的一些注意点
1.当table有需要隐藏cell的需求时,不要设cellHeight=0,而是要控制cell的个数,防止cellHeight=0时,控件也会往上加 2.masonry在做动画之前,要先在动画前给控件设置约束,并调用父视图的layoutifNeeded,在iOS7上,若是调用子视图的layoutifNeeded,动画不会执行3.查看当前对象的引用计数的两种方法:NSLog(@"--原创 2016-08-24 20:37:42 · 499 阅读 · 0 评论 -
双击tabBar按钮事件构建
给项目添加一个双击tabBar按钮,实现界面刷新的功能很常见,但是iOS并未提供这一功能,所以只能用单击事件结合两次之间的单击事件来模拟双击,下面是我自己实现的双击tabBar按钮功能:@property (nonatomic, strong) NSDate *lastDate; //记录上次点击tabbar的时间,用于双击判断#pragma mark - UITabBarControllerDel原创 2016-11-17 11:55:10 · 1063 阅读 · 0 评论 -
performSelector: withObject: afterDelay: 传递基本数据类型参数的bug
在开发过程中,我们经常需要使用performSelector: withObject: afterDelay:来解决延迟执行一个函数的问题,但是,这个performSelector函数只接受一个objc对象作为参数,那对于那些基本类型的参数怎么办呢?听很多人说用类型转换,于是我试了试:[self performSelector:@selector(test:) withObject:[NS...原创 2016-09-18 11:32:05 · 2774 阅读 · 0 评论 -
iOS下JS与原生OC互相调用(总结)
简书传送门: http://www.jianshu.com/p/d19689e0ed83 其中的第一种方法在iOS10中已不适用了,推荐使用第二种方法转载 2016-09-29 15:16:52 · 347 阅读 · 0 评论 -
UIWebView与JS的常用交互
在UIWebView中,我们经常遇到网页的JS不满足需求的情况,这时,我们就要在下面的这个delegate中手动注入JS代码:- (void)webViewDidFinishLoad:(UIWebView*)theWebView { [self.webView stringByEvaluatingJavaScriptFromString:@"JS代码"}常用的”JS代码”原创 2016-09-29 15:12:39 · 325 阅读 · 0 评论 -
runtime学习
学习:http://blog.csdn.net/a19860903/article/details/45044701 使用:万能跳转:http://blog.csdn.net/a19860903/article/details/52535078转载 2016-10-13 13:33:50 · 277 阅读 · 0 评论 -
TextField和TextView字数超出截取问题
在IOS开发中,我们经常需要对textfield和textView中的文字进行限制, 对于超出限制的内容进行截取。但在实际开发过程中会遇到一些问题: 1.在输入中文的时候,系统会在你开始拼音的时候就统计字数,使得你 在输最后几个字时,拼音都打不全 2.对于表情,默认length为2,当表情超出限制时,一个表情的length会 被截成1,导致乱码解决办法: 代码传送门:http原创 2015-11-13 14:14:20 · 1764 阅读 · 0 评论 -
隐蔽的数组越界问题
先看下面的代码,你觉得输出什么结果呢: NSArray *ary = @[]; NSLog(@"%@",@([ary count] - 1));很多人会以为结果为 -1,但是,结果却是一个无穷大的数。这里就有一个陷阱,查看数组的count属性,可以发现它是一个无符号整数,所以计算结果也是无符号整数:@property (readonly) NSUInteger count;其实这点大家原创 2016-08-24 19:50:25 · 305 阅读 · 0 评论 -
关于获取当前时间有时差的问题
示例代码: NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; NSLog(@"%@---%@",[formatter stringFromDate:[NSDate date]],[formatter date原创 2016-08-24 19:14:08 · 319 阅读 · 0 评论 -
设置视图透明度的两种方法和区别
第一种:直接使用alpha属性 UIView *view1 = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)]; view1.backgroundColor = [UIColor greenColor]; view1.alpha = 0.5; [self.view addSubview:view原创 2016-08-24 19:05:17 · 810 阅读 · 0 评论 -
NSDateFormater格式串含义
a: AM/PM (上午/下午)A: 0~86399999 (一天的第A微秒)c/cc: 1~7 (一周的第一天, 周天为1)ccc: Sun/Mon/Tue/Wed/Thu/Fri/Sat (星期几简写)cccc: Sunday/Monday/Tuesday/Wednesday/Thursday/Friday/Saturday (星期几全拼)d: 1~31 (月份的第几天, 带0)D: 1~366转载 2016-04-11 11:41:55 · 1092 阅读 · 0 评论 -
IOS调用系统相机后状态栏消失BUG
相信很多人都遇到过这个Bug。在使用UIImageViewController调用系统相册时,完全没这个问题,但是调用系统相机时,问题就出现了://UIImageViewDelegate代理- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictiona原创 2015-12-24 11:34:24 · 2653 阅读 · 0 评论 -
ViewController生命周期
这里只是对几个主要的VC的生命周期函数做一下分析: 1.在A控制器中实现以下函数- (void)viewDidLoad { [super viewDidLoad]; NSLog(@"A-viewDidLoad"); UIButton *A = [[UIButton alloc] initWithFrame:CGRectMake(100, 100, 50, 50)];原创 2015-12-21 15:49:05 · 660 阅读 · 0 评论 -
优雅的判断scrollView的滑动方向(只适用一次手势中不改变滑动方向)
func scrollViewDidScroll(_ scrollView: UIScrollView) { let point = scrollView.panGestureRecognizer.translation(in: self) if point.x > 0 { //往右滚动 directio...原创 2018-01-10 16:54:46 · 2665 阅读 · 0 评论