iOS 的开发过程中,会遇到弹出模态视图进行交互的情况,用户实际操作区域只占屏幕的一部分,其余区域使用半透明黑色遮罩进行覆盖。下面就记录一下实现如下所示模态视图的方案。 Popup_Window动画 这里有3种实现方案, 根据情况可选择合适的方案: 添加视图到ViewController.view.window上 使用系统提供的模态转场 切换window 添加视图到ViewController
Continue reading

与公司 QA 聊天,已不止一次被吐槽说移动端从开发环境转到生产环境时,还要靠修改代码来配置对应的环境参数。她认为,从 App 转测试之后,就不应该再修改代码,可以把所有的环境配置都整合到配置文件中,这样打不同环境下的安装包时,会自动选择对应的环境参数。这里说到的环境参数包括但不仅限于: webservice 地址,友盟 AppKey,极光推送 AppKey 和是否是生产环境标志等。

其实,我也讨厌修改环境参数啊,😂

为达成上述目的,主要是使用 Xcode 的 Configurations Setting File(即后缀为 xcconfig 文件) 来配置开发不同阶段下的环境。本文包含的内容如下:

Continue reading

使用 == 比较 iOS 中的对象时,比较的是对象的指针。例如有如下比较时:

1
2
3
4
5
6
7
8
9
NSString *str = @"origin1";
NSString *strCopy = [str copy];
NSString *str1 = [NSString stringWithFormat:@"origin%@", @1];

BOOL equalA = (str == strCopy);
BOOL equalB = (str == str1);

BOOL equalC = [str isEqualToString:str1]; /**< equalC is YES */
BOOL equalD = [str isEqual:str1]; /**< equalD is YES */
Continue reading

本文最终实现的是使用脚本打 Ad-hoc 包,并发布测试,当然稍微修改一下脚本参数就可以打其他类型的 ipa 包了。另外该脚本还实现了将生成的 ipa 包上传至蒲公英进行测试分发。

Continue reading

iOS开发中,屏幕适配也是项很重要的工作,本文记录了一些在屏幕适配的过程中与图片相关的工作。

基本概念

首先,理解几个概念: Points, Rendered Pixels, Physical Pixels, Physical Device。

  • Points: 是iOS开发中引入的抽象单位,称作点。开发过程中所有基于坐标系的绘制都是以 point 作为单位,在iPhone 2G,3G,3GS的年代,point 和屏幕上的像素是完全一一对应的,即 320 * 480 (points), 也是 320 * 480 (pixels)
  • Rendered Pixels: 渲染像素, 以 point 为单位的绘制最终都会渲染成 pixels,这个过程被称为光栅化。基于 point 的坐标系乘以比例因子可以得到基于像素的坐标系,高比例因子会使更多的细节展示,目前的比例因子会是 1x,2x,3x
  • Physical Pixels: 物理像素,就是设备屏幕实际的像素
  • Physical Device: 设备屏幕的物理长度,使用英寸作为单位。比如iPhone 4屏幕是3.5英寸,iPhone 5 是4英寸,iphone 6是4.7英寸,这里的数字是指手机屏幕对角线的物理长度。实际上会是Physical Pixels的像素值(而不是Rendered Pixels的像素值)会渲染到该屏幕上, 屏幕会有 PPI(pixels-per-inch) 的特性,PPI 的值告诉你每英寸会有多少像素渲染。
Continue reading

CaryaLiu

宅男一枚, 在前进的道路上.


iOS开发工程师


成都