随笔分类 -  iOS

摘要:如果syncMain在主线程执行,那么会死锁。如果在非主线程执行,那么可以正常执行 阅读全文
posted @ 2020-05-27 16:51 Emyin 阅读(123) 评论(0) 推荐(0)
摘要:1. 存储方式 2. 应用沙盒 3. plist实例 4. 偏好设置 存取实例: 5. plist中不能保存自定义的对象,归档可以。 阅读全文
posted @ 2020-05-13 15:14 Emyin 阅读(135) 评论(0) 推荐(0)
摘要:1. 普通传递方式 控制器2push到控制器3. 控制器3返回需要设置一个控制器2的属性,从而实现控制器3向控制器2传递数据模型。这样的话,两个控制器耦合性高。 解决: 用代理实现数据模型的逆向传递 用代理实现数据模型的逆向传递: 2. 模型传递时,控制器的view还没有初始化 解决办法,将控件的赋 阅读全文
posted @ 2020-05-09 19:18 Emyin 阅读(236) 评论(0) 推荐(0)
摘要:1. UIDatePicker 2. 日期格式转换 阅读全文
posted @ 2020-05-09 18:31 Emyin 阅读(120) 评论(0) 推荐(0)
摘要:1. 控制器的生命周期 . viewWillDisappear viewDidlDisapper 2. 控制器的segue跳转 3. 阅读全文
posted @ 2020-05-09 18:22 Emyin 阅读(137) 评论(0) 推荐(0)
摘要:第3步创建空白view的意思是创建一个颜色为clearColor的view, 而不是alpha = 0的view. 因为此时若在view上添加button, button可以点击。而alpha = 0的控件 是不能处理事件的。 注意调用先后顺序 阅读全文
posted @ 2020-05-06 19:42 Emyin 阅读(498) 评论(0) 推荐(0)
摘要:如果info.plist没有设置main, 则程序启动黑屏,不会加载main.storyboard, 这时需要手动显示页面 键盘,状态栏都是UIWindow 用storyboard加载控制器 用xib加载控制器 阅读全文
posted @ 2020-05-06 17:55 Emyin 阅读(171) 评论(0) 推荐(0)
摘要:每一个应用都有自己的UIApplication对象,单例的。 通过[UIApplication sharedApplication]获取 程序启动后创建的第一个对象 1. 设置图标右上角红色提醒数字 2. 设置联网指示器的可见性 单例:(load方法比main方法先调用) 当有来电或锁屏会导致app 阅读全文
posted @ 2020-05-06 10:26 Emyin 阅读(162) 评论(0) 推荐(0)
摘要:1. 存放公有的宏 2. 存放公有的头文件 3. 定义log 原理:在编译过程当中,把pch的所有内容导入到工程中所有文件中。 阅读全文
posted @ 2020-05-06 00:05 Emyin 阅读(172) 评论(0) 推荐(0)
摘要:Bundle name : 手机图标显示的名字,如果不设置,默认是工程名 Bundle identifier : 应用程序的唯一标识 Bundle versions string, short : 软件的版本号 Bundle version : 应用打包的版本号 阅读全文
posted @ 2020-05-05 22:59 Emyin 阅读(155) 评论(0) 推荐(0)
摘要:1. 通知 : 任何对象之间可以传递消息,一个对象可以发通知给多个对象,也可以接收多个对象发出的通知 2. KVO : 监听对象属性的改变(灵活度不如通知和代理) 具体见 https://www.cnblogs.com/yintingting/p/12757536.html 3. 代理 : 1个对象 阅读全文
posted @ 2020-05-05 00:55 Emyin 阅读(497) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2020-05-01 20:34 Emyin 阅读(182) 评论(0) 推荐(0)
摘要:但是它只能计算一行文字的宽度,多行文字的高度计算不了(多行文字的高度要根据label的最大宽度来计算,这里没有这个属性) 所以改用下面方式: 不过这个方法已废弃,故更多用这个方式: 阅读全文
posted @ 2020-04-30 14:14 Emyin 阅读(911) 评论(0) 推荐(0)
摘要:- (BooL)prefersStatusBarHidden{ return YES; } 阅读全文
posted @ 2020-04-29 23:00 Emyin 阅读(274) 评论(0) 推荐(0)
摘要:1. 去掉数据下方的分割线 解决一:把tableView的风格设置为group的 解决二: self.tableView.tableFooterView = [[UIView alloc] init]; 2. 3. 自定义cell 一,代码方式: 在layoutSubviews中计算子控件位置尺寸或 阅读全文
posted @ 2020-04-29 20:26 Emyin 阅读(136) 评论(0) 推荐(0)
摘要:1. Autoresizing在storyboard中使用,先关闭auto layout和sizeclasses 只能解决子控件和父控件之间的关系 在代码中使用: 2. Autolayout能解决任何控件之间的关系 3. 用Autolayout给label设置一个固定宽度及相应位置及line=0,发 阅读全文
posted @ 2020-04-23 23:09 Emyin 阅读(220) 评论(0) 推荐(0)
摘要:1. 结束编辑 [textFileld endEditing:YES]; [textField resignFirstResponse]; [self.view endEditing:YES]; 2. textField.delegate <UITextFileldDelegate> 下面代理方法: 阅读全文
posted @ 2020-04-23 14:14 Emyin 阅读(200) 评论(0) 推荐(0)
摘要:1. 监听scrollview停止拖拽需要下面两个方法: 2. scrollview的代理为何是weak, 防止循环引用 3. 设置代理,可以拖线设置,也可以代码设置 4. 缩放: 实现delegate方法,设置缩放的view, 设置缩放比例 5. pagingEnabled = YES : 当滑到 阅读全文
posted @ 2020-04-23 13:55 Emyin 阅读(145) 评论(0) 推荐(0)
摘要:键值监听 [person addObserver: forKeyPath ] [person removeObserver: forKeyPath】 当监听的属性值发生改变,会调用下面方法: -observeValueForKeyPath: ofObject... 阅读全文
posted @ 2020-04-22 22:53 Emyin 阅读(96) 评论(0) 推荐(0)
摘要:[person setValue:@"xiaomi" forKeyPath:@"dog.name"]; [person valueForKey:"age"] [person dictionaryWithValuesForKeys:@[@"name",@"age"]]; //模型转字典 forKey和 阅读全文
posted @ 2020-04-22 21:07 Emyin 阅读(86) 评论(0) 推荐(0)