iOS开发相关
宋敬佩
说走就走的旅行
展开
-
UIScrollView不能响应UITouch事件
关于UIScrollView不能响应UITouch事件的解决办法原因是:UIView的touch事件被UIScrollView捕获了。 解决办法:让UIScrollView将事件传递过去。于是最简单的解决办法就是加一个UIScrollView的category。这样每个用到UIScrollView的地方只要导入这个category就可以直接响应相关的touch事件了转载 2016-05-13 10:13:13 · 786 阅读 · 0 评论 -
iOS 10 适配 ATS
一. HTTPS其实HTTPS从最终的数据解析的角度,与HTTP没有任何的区别,HTTPS就是将HTTP协议数据包放到SSL/TSL层加密后,在TCP/IP层组成IP数据报去传输,以此保证传输数据的安全;而对于接收端,在SSL/TSL将接收的数据包解密之后,将数据传给HTTP协议层,就是普通的HTTP数据。HTTP和SSL/TSL都处于OSI模型的应用层。从HTTP切换到HTTPS转载 2017-01-24 10:24:11 · 1585 阅读 · 0 评论 -
UINavigationController栏透明度影响子视图的原点位置
self.navigationController.navigationBar.translucent = YES;导航控制器的导航栏的透明度为YES时, 即透明, 受导航控制器控制的视图的(0, 0)即为其子视图的原点位置, 即子视图的最高显示高度(self.view.frame.size.height)为总视图的高度(self.view.frame.size,height)原创 2017-12-07 16:52:22 · 249 阅读 · 0 评论 -
iOS 过滤后台传递 其他Json数据类型【过滤非字符串类型】
//过滤如null、整形等数据字段 重写setValuesForKeysWithDictionary 方法- (void)setValuesForKeysWithDictionary:(NSDictionaryNSString *,id> *)keyedValues;{ //setValuesForKeysWithDictionary:原理--遍历字典原创 2017-12-08 10:44:32 · 514 阅读 · 1 评论 -
iOS ReactiveCocoa 使用详解(四)
ReactiveCocoa常见类学习框架首要之处:个人认为先要搞清楚框架中常用的类,在RAC中最核心的类RACSiganl,搞定这个类就能用ReactiveCocoa开发了。1、RACSiganl:信号类,一般表示将来有数据传递,只要有数据改变,信号内部接收到数据,就会马上发出数据。注意:信号类(RACSiganl),只是表示当数据改变时,信号内部会发出数据,它本身不具备发送信号的能力,而是交给内原创 2018-01-05 10:56:26 · 296 阅读 · 0 评论 -
iOS开发的10个特别好的实现
1.关于关键字volatile一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。就像大家更熟悉的const一样,volatile是一个类型修饰符。它是被设计用来修饰被不同线程访问和修改的变量。如果不加入volatile,基本上会导转载 2018-01-05 14:59:54 · 320 阅读 · 0 评论 -
iOS ReactiveCocoa 使用详解(五)
RACSignal的Subscription过程通过下面一张图理解RACSignal的调用过程:创建signaleRACSignal通过子类[RACDynamicSignal createSignal:]方法获得Signal,并将disSubscribe这个block保存在Signal中。+ (RACSignal *)createSignal:(RACDis转载 2018-01-05 16:24:30 · 535 阅读 · 0 评论 -
UIDatePicker 高度设置问题
1、iOS 中DatePicker时间选择器控件,在iOS8系统中 设置高度如果超过216,是无效的。最高不能超过216,iOS9以上系统不收影响。(应该是iOS8系统的Bug)。2、但是有时会发现 设置低于216也无效,这时需要把frame和init分开来写了UIDatePicker *datePicker = [[UIDatePicker alloc]initWithFrame:CGRectM...原创 2018-03-20 10:20:19 · 2223 阅读 · 0 评论 -
iOS WIFI连接设备 同时3G/4G上网
目前市场点对点互联 称为热点,通常点对点连接用 蓝牙和wifi 两种方式。1、蓝牙传输速率低,失真率高。不适合传输大数据 如视频,图片等。2、wifi传输速率高,失真率低,即可作为热点ap,也可作为 终端wifi direct。适合视频和图片的传输等大数据传输。加入一个APP 的需求既要通过wifi与只能硬件相连,又要通过APP中转把相关数据提交给后天服务器。如心电原创 2017-01-12 12:30:38 · 6043 阅读 · 0 评论 -
获取相机照片自动旋转 解决办法
项目中经常会用到 调用 相机和照片 上传图片等,通常情况下把照片加载到UIImageView 显示是正常的,但是有时候项目需求需要保留上次选择的照片,这个时候一般需要先把照片保存到本地,然后再去读取照片。这个时候发现读取保存的照片加载到UIImageView有时候会发生旋转的情况。查找过程中, 碰到了一种说法://get original photo from iO原创 2016-12-14 17:26:38 · 2831 阅读 · 0 评论 -
iOS TextFiled 文本密码切换 光标偏移解决
直接一段代码: UIButton * btn = (UIButton *)sender; btn.selected = !btn.selected; //重新定位光标 NSString * passStr = self.passWord_Field.text; self.passWord_Field.text = @""原创 2016-05-13 11:12:54 · 846 阅读 · 0 评论 -
iOS沙盒文件目录详解
1、每个应用的沙盒目录都是相似的,主要包含app的两个文AppName.app和 data。 【1】AppName.app 目录:这是应用程序的程序包目录,包含应用程序的本身。(包括资源文件和可执行文件等。程序启动以后,会根据需要从该目录中动态加载代码或资源到内存) 由于应用程序必须经过签名,所以您在运行时不能对这个目录中的内容进行修改,否则可能会使应用...原创 2016-04-19 10:36:27 · 787 阅读 · 0 评论 -
ARC下PerformSelector may cause a leak because its selector is unknown 警告
项目中使用到了从字符串创建选择器,编译时发现警告:"performSelector may cause a leak because its selector is unknown"(因为performSelector的选择器未知可能会引起泄漏)原因在ARC模式下,运行时需要知道如何处理你正在调用的方法的返回值。这个返回值可以是任意值,如void,int原创 2016-06-16 10:53:01 · 377 阅读 · 0 评论 -
UITableViewCell 多余不显示问题
1、默认给置成空视图 tableView.tableFooterView = [UIViewnew];2、隐藏掉所有的下划线 (前提是 不用tableviewcell的下划线 自定义下划线) cell.selectionStyle =UITableViewCellSelectionStyleNone;原创 2016-07-28 17:11:32 · 720 阅读 · 0 评论 -
什么时候调用layoutSubviews
如果你想强制更新布局,不要直接调用此方法。你可以调用setNeedsLayout方法;如果你想立即数显你的views,你需要调用layoutIfNeeded方法。 layoutSubviews作用 layoutSubviews是对subviews重新布局。比如,我们想更新子视图的位置的时候,可以通过调用layoutSubviews方法,既可以实现对子视图重新布局。 layo原创 2016-09-14 10:35:58 · 1695 阅读 · 0 评论 -
TextField内文字距左边框的内边距
默认情况下,当向textField输入文字时,文字会紧贴在textField左边框上.我们可以通过设置textField的leftView,设置一个只有宽度的leftView.这样还不够,因为默认leftView是不显示的.还需要将leftViewMode设置为UITextFieldViewModeAlways.这样就完成了. (小技巧:通过查询UITextField的头文件可以看出left原创 2016-11-17 15:01:12 · 14011 阅读 · 1 评论 -
iOS下Html页面中input获取焦点弹出键盘时挡住input解决方案
问题描述iOS系统下,移动web页面,inpu获取焦点弹出系统虚拟键盘时,偶尔会出现挡住input的情况,尽管概率不大,但是十分影响用户体验。问题重现原始页面:页面中有header、main、footer三部分,其中 header 和 footer 通过 position: fixed; 定位在浏览器顶部和底部。其中,footer 中有一个input 输入框。转载 2016-11-17 17:48:46 · 22418 阅读 · 2 评论 -
UITextField 限制输入长度
1、#pragma mark- UITextFieldDelegate- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { if (string.length =原创 2016-12-14 17:03:15 · 473 阅读 · 0 评论 -
iOS性能优化-内存优化(1)
1、iOS的内存管理机制Objective-C语言本身是支持垃圾回收机制的,但有平台局限性,仅限于Mac桌面系统开发中。而在iPhone和iPad等苹果移动终端设备中是不支持垃圾回收机制的。在移动设备开发中的内存管理是采用MRC(Manual Reference Counting)以及iOS5以后的ARC(Automatic Reference Counting),本质都是RC引用计数,...原创 2019-05-15 15:27:49 · 1173 阅读 · 0 评论