
iOS开发
万年的梧桐
职业程序员爱好打球下棋
展开
-
关于Framework Search Paths的一些事情
一,背景在iOS开发过程中,偶尔会遇到这样的问题,明明我在工程中已经引用了framework了,但是写代码的时候给我报错,头文件找不到这个问题其实就是Build Setting 中 Framework Search Paths 出问题了,比如上图中出错,是因为我手动删了Framework Search Paths的配置二,探索工程编译过程中,xcode会根据Framework Search Paths中的路径在文件中搜索Framework,这个时候,只要配置的路径中有对应的Fr.原创 2021-04-21 15:15:00 · 2597 阅读 · 0 评论 -
ios开发GCD的一些问题
直接上代码在主线程,比如vc 的viewDidLoad方法中运行如下代码 NSLog(@"1"); dispatch_sync(dispatch_get_global_queue(0, 0), ^{ NSLog(@"2"); dispatch_sync(dispatch_get_global_queue(0, 0), ^{ NSLog(@"3"); }); NSLog(@"5"); });原创 2021-02-23 15:22:58 · 130 阅读 · 0 评论 -
如何让xcode工程编译前执行一个python脚本
选中 targets 在build phases中 点击左上角的 “+” 选择 New Run Script Phases默认情况下,这是一个shell脚本,我们可以在shell脚本中调用python 脚本在工程目录中创建一个python脚本使用 python $SRCROOT/GCSEgine.py 进行调用,其中 $SRCROOT是一个shell变量,表示project文件所在文件夹的路径。通过这个路径系统可以找到我们的python文件。import osimp...原创 2021-02-23 14:37:39 · 1582 阅读 · 2 评论 -
iOS自动建端技术探索
使用ruby脚本,主要是因为有xcodeproj这个大杀器,这个ruby库封装了xcodeprojet文件的操作方法,使用它可以快捷的修改工程配置,依赖等。ruby学习资料https://www.runoob.com/ruby/ruby-tutorial.htmlxcodeproj源码https://github.com/CocoaPods/Xcodeproj/blob/master/lib/xcodeproj/project.rbxcodeproj文档https://www.rub原创 2020-07-29 20:26:09 · 128 阅读 · 0 评论 -
ios开发,让界面只响应单个点击事件
一个界面上放两个按钮,同时点击这两个按钮,两个按钮的事件都会触发,这经常会导致一些不想看到的问题。通过设置 UIView 的exclusiveTouch为YES,可以解决这个问题。 exclusiveTouch 的意思是,让该view在响应一次点击事件时,具有排他性。默认是NO,将两个按钮的该属性都设置为yes之后,就不会出现两个按钮同时响应点击的问题了。 可以原创 2015-07-03 16:01:18 · 1010 阅读 · 0 评论 -
富文本,NSAttributedString 与 coreText
在ios 6 以前,绘制富文本,需要重写view的drawRect 方法,使用 coreText 绘制 。ios6以后,系统为UILabel 添加了对富文本的支持。同时,对一些coreText 层需要的属性,在NS 层进行了封装,现在使用起来非常的简便,比如 NSString * countStr = @"20"; NSString * memberCountStri原创 2015-08-27 10:50:55 · 575 阅读 · 0 评论 -
处理中文输入的问题
在ios开发中,经常碰到这样一个问题,就是输入中文的时候,键盘上才输入拼音,没有选择汉字,就会触发textField的textChange 事件,这样有些问题。比如需要统计字符长度时,可能会统计成拼音的长度。还有在某些搜索功能下,我们希望每输入一个汉字时自动触发搜索操作,这个时候却是每输入一个拼音字母就触发一下操作。 在UITextField 实现了UITextInput 协议,该协原创 2015-09-24 17:10:25 · 426 阅读 · 0 评论 -
ios开发中关于绘图的问题
ios开发中,绘图完成后一定要记得释放内存。否则会导致内存溢出。也就是说 类似 UIGraphicsBeginImageContextWithOptions() 和 UIGraphicsEndImageContext(); 应该是成对出现的原创 2015-10-14 11:35:25 · 428 阅读 · 0 评论 -
左右滑动与上下滑动的冲突
这次碰到这样一个问题,在一个自定义的view里面添加了 手势,控制左右滑动。这个view加在一个 scrollView 里面,然后发现,手指在 自定义view区域内部滑动时,scrollView的滑动是失效的,也就是说滑动事件被自定义的view 拦截了。现在要做到 左右滑动时自定义view去响应,上下滑动时,作为容器的scrollView 去响应,应该怎么做呢。找到个办法。原创 2016-02-03 15:54:36 · 2532 阅读 · 0 评论 -
SceneKit加CoreMotion实现全景图浏览
SceneKit是iOS中的一个简单的3D引擎,有了他,我们可以将一些简单的3D功能直接通过OC来实现,而不需要借助Unity3D这类游戏引擎了。下面我们就用SceneKit来实现一个简单的全景图浏览功能。图形学扫盲:首先有一个3D的场景,然后场景里面有各种3D的模型,有灯光,最后,通过摄像机,将3D的场景映射到一个2D的平面上显示出来,这是基础。通过这个我们可以想到全景图最简单的一个实现...原创 2018-08-24 21:28:16 · 935 阅读 · 0 评论 -
逻辑与界面相分离
逻辑与界面相分离是软件设计中最最基本的东西,也是分层思想最简单的体现。在实际的编码中,我们一定要时时提醒自己注意这个,防止代码中出现坏味道。最近软件就出现这个问题了,原来项目中的功能模块直接放入到新项目中使用,但是乙方对该模块提出了一些需求改进。主要是界面上一系列button的位置。该功能模块时以前的程序员制作的。由于button的位置相对比较规律,在生产button,并且设定位置时。原创 2015-01-19 13:32:12 · 1288 阅读 · 0 评论 -
ios开发中自定义键盘
UITextField有一个属性 inputView。自定义一个view,赋给textField.inputView,这样,当选中该textField时,弹出的就是你自定义的键盘原创 2015-01-13 15:30:41 · 521 阅读 · 0 评论 -
ios中打开ANSI编码txt文件的办法
在项目过程遇到的问题,从服务端下载一些文本文件过来,手机端要打开,结果读取文件时发现是乱码,试了几种编码方式解码的都不行,比如UT-8,ASCI,unicode,等都不行,后来发现文件的编码方式是ANSI,这种编码方式是windows上面特有的,苹果提供的那个编码枚举类型中并不包含此种编码方式的定义,后来找到办法了。就是自己定义一个编码方式,代码很简单,如下//编码 NSStr原创 2013-09-05 09:00:13 · 2071 阅读 · 0 评论 -
xml解析
前面在项目过程中,与服务器端通信一直使用的JSON格式,在手机端JSON格式确实比较好用,苹果官方库还有许多三方库可以将JSON格式转化为数组或是字典直接使用,非常方便。这次有个功能服务端改成发XML数据了,原因是服务端那边用C#做的,可以从数据库中读取几行数据之后直接转成XML格式,而且不容易出错。于是这次研究了一下怎么解析XML。主要是使用系统的NSXMLParser类,这个类是按SAX的方式原创 2013-09-18 17:58:33 · 674 阅读 · 0 评论 -
适配ios7
以前版本的软件在ios7里面跑,界面变化很大,必须做一些调整。大体上有以下几点: ios7以前的版本中,frame的原点是从导航栏下面算起的,而ios7中原点位置直接是整个屏幕的左上角。那么,ios6中的app在ios7中运行时,会看到,整个界面好像往上面移动了,状态栏和导航栏遮住了一部分主界面,同时,屏幕下方会空出同样宽度。解决方案就是在以前视图的基础上,将相关的view向下面移动6原创 2013-10-09 11:24:34 · 1090 阅读 · 0 评论 -
注意版本问题
软件发布了大半个月了,有用户在使用时遇到些问题,然后反馈到我这边来。最近碰到几个用户跟我说程序闪退的。发现ios5.1的系统都在同一个地方出现闪退,然后我就怀疑是不是版本兼容问题,因为我在那个地方使用了三方库。然后我就下载安装了一个ios5.1的模拟器测试程序,结果很意外,程序在一行很简单的代码处crashNSIndexPath * indexPath=[NSIndexPath i原创 2013-09-24 09:52:24 · 1198 阅读 · 0 评论 -
项目中使用了ARC 但引入的第三方SDK没使用ARC,导致出错
项目中使用了ARC 但引入的第三方SDK没使用ARC,导致出错。解决办法是原创 2014-06-05 11:01:39 · 456 阅读 · 0 评论 -
duplicate symbol 错误的解决办法
项目中添加的两个三方库中重复定义了wen'ji原创 2014-06-11 19:05:42 · 3507 阅读 · 0 评论 -
ios向项目中导入文件
ios开发,向项目中导入文件时,会出现两个选项,create原创 2014-09-02 14:33:35 · 1846 阅读 · 0 评论 -
launchScreen.xib
launchScreen.xib为 xcode6中添加的新东西,可以用于ios8系统中设置启动界面。 在images.xcassets中添加一个image set 命名为bgLaunch,然后在里面为不同分辨率的屏幕设置不同的图片 在launchScreen.xib中拖入一个imageView,设置约束为跟当前屏幕一样大小,然后设置图片为 bgLaunch 不同屏幕的启动图原创 2015-01-12 10:54:20 · 810 阅读 · 0 评论 -
使用CoreAnimation实现最简单的拖拽转盘效果
为了使程序看起来很简单很简单,我使用的并不是最合适的方法。新建一个ios Application项目,选择Single View Application随便给项目起个名字。自己写一个view让它具备拖拽转动的功能: 添加一个类TurntableView继承自UIView。拖拽转动的基本思路,用户手指按住屏幕并滑动时,程序可以得到滑动过程中的点,通过这些点与view的ce原创 2013-01-22 18:00:03 · 592 阅读 · 0 评论