Code and Zen

分享技术 记录生活

我是孙凯旋 Kyle (@skx926)
一名来自中国的 iOS 开发者
搞过 Android,也会点前端


喜欢摄影和户外运动
正在努力健身,让自己变得壮一点

  1. 解决Storyboard中设置的颜色和代码设置的颜色不一样的问题

    最近发现在Storyboard中设置的颜色和用代码设置的颜色居然不一样,当时我就震惊了! 更让人震惊的是搞了这么多年iOS开发,居然现在才发现!惭愧啊。。。 网上查了一下才知道原来Xcode里的色彩选择器默认的Color Profile是Generic RGB,如下图所示: 把它改为Device RGB就可以解决这个问题了。 …

    iOS开发 继续阅读

  2. 利用Pinch和Pan手势实现UIView的缩放和拖拽

    先来看下我们要实现的效果: 其实这个效果UIScrollView已经自带了,但是某些情况下由于某些原因我们可能不能或者不想使用UIScrollView,那么我们就得自己实现这个效果。 如果要单独用Pinch手势实现缩放或者用Pan手势实现拖拽,这个比较简单,直接贴代码: // 利用Pinch手势实现缩放func didPinch(_ pinch: UIPinchGestureRecognizer) { if pinch.state != .changed { …

    iOS开发 继续阅读

  3. 获取App Store下载的Xcode安装包

    通过 App Store 下载安装 Xcode 的时候可能会遇到各种奇葩的事情。 这不,我刚才就摊上事了:用公司的渣网络辛辛苦苦下载两个多小时眼看开始安装了结果弹框提示我说空间不足无法继续安装。既然空间不足咱就清理一下呗,清理完了之后想要继续安装发现没有办法重新开始安装,App Store 里的按钮显示 发生错误,/Applications 文件加下的 Xcode.appdownload 文件双击也没有任何反应,真是哔了狗了! 如果是下载还在进行,我们就可以根据 这篇文章 所说的方法通过在活动 …

    Mac技巧 继续阅读

  4. 制作服务端推送时使用的.pem证书

    服务端要给移动端发送推送消息就需要用到推送证书,但是服务端通常需要的证书 .pem 格式的,并不是我们从Apple的开发者中心下载到的 .cer 格式的文件,所以我们需要对其做一个转换。 申请推送证书的过程我就不赘述了,这里假设你已经申请好了开发环境和生产环境的推送证书并下载导入到 Mac 钥匙串当中。 下面我们开始转换,这里我以开发环境为例,生产环境同理: 从钥匙串中分别导出 Apple Development iOS Push Serives 证书和私钥为 cer.p12 和 key.p1 …

    iOS开发 继续阅读

  5. 嵌套UIScrollView滑动手势冲突的解决

    问题最近有有朋友在Github上提出issue说 KSPhotoBrowser 在图片长度超出屏幕大小多时候没有办法通过拖拽返回。其实这个问题从我开始开发的时候就存在,感觉影响不是很大就一直拖着没解决。既然有人提出来了,那看来是必须得解决一下了。。。 第一张图就是正常的拖拽返回,第二张有问题。 解决要解决这个问题我们不得不说下 KSPhotoBrowser 的布局结构,先来看一张图: 如上图所示,一个父 UIScrollView 里面添加了多个子 UIScrollView,每个子 UISc …

    iOS开发 继续阅读

  6. Xcode多Target下本地化App名称

    Target可能很多人都会有开发多个相似的App的需求,这些相似的App可能也就是名称、BundleID、证书配置不同,其他的功能都基本一样。对于这种情况的处理,一种比较笨的办法就是手动修改 Info.plist 文件中相应的内容,打包完了之后再次修改再打包。这种方法如果只是搞一次也不会麻烦很多,但是如果多搞几次,谁都会觉得烦,况且在修改的过程中还有可能会出错。那有没有什么更好的办法呢?答案是:使用 Target。 那么什么是 Target 呢?简单点说,一个 Target 描述了一个产品的属性 …

    iOS开发 继续阅读

  7. 检测iOS设备是否连接VPN

    前言(废话)最近接到一个限制我司国内版的产品在国外的使用App的需求,其实也就是让这种“水货”的产品在国外无法连接我们的App。 为了达到这个目的,首先需要从产品中获取它的序列号来判断它是否属于国内版,然后根据手机的定位判断是否在国外,如果两个条件同时满足就断开连接。 为了判断手机的定位是否在国外有以下两种方法: 根据手机的GPS定位坐标反地理编码获取国家代码判断是否是CN。 后台接口根据手机的IP来判断是否在国外。 这两种方式都有缺陷,第一种可以通过模拟定位到国内的方式来避开,第二种可以通 …

    iOS开发 继续阅读

  8. 让Mac终端自动补全忽略大小写

    Mac自带的 Terminal.app 已经有自动补全功能,但是需要区分大小写。只需要在用户目录下修改 .inputrc 文件的配置就可以让它忽略大小写。具体操作如下: $ vi ~/.inputrc 然后在里面添加下面的内容: set completion-ignore-case onset show-all-if-ambiguous onTAB: menu-complete 保存后重新打开终端就可以使用 Tab 键愉快的使用了。 …

    Mac技巧 继续阅读

  9. 使用Trunk发布开源库到Cocoapods

    注册安装Cocoapods$ sudo gem install cocoapods$ pod setup pod setup 的过程就是把 Cocoapods/Specs 克隆到本地的过程,由于这个库包含了所有发布到Cocoapods的开源库的说明,现在已经有数百兆的大小了,而且由于某众所周知的原因,这个过程会比较慢,需要耐心等待。 注册Trunk$ pod trunk register skx926@gmail.com 'Kyle Sun' --description='iMac' --ver …

    iOS开发 继续阅读

  10. 让你的Mac终端“漂亮”起来

    Mac自带的终端默认的配色看起来有些单调,如何让它变的“漂亮”一些呢?这里我们以Tomorrow配色方案为例来进行设置。 首先我们使用下面的命令来从Github上克隆Tomorrow项目$ git clone https://github.com/chriskempson/tomorrow-theme.git 窗口进入刚才下载的项目的文件夹中的OS X Terminal文件夹,然后双击运行Tomorrow Night.terminal即可导入Tomorrow Night主题到终端。然后我们在终端 …

    Mac技巧 继续阅读