自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

郭晓东的专栏

IT工匠——只为更精致的产品

原创 使用NSURLSession简单做一个上传图片的方法

通常上传文件、图片。使用http请求的POST方法,在body体中还有一些固定的格式。iOS SDK中的NSURLSession是一个heigh-level API,由于上传图片是一次性请求,实现起来还是很方便的:下面是关键代码,一个函数即可可以实现:

2017-04-27 15:45:56 3366 0

原创 【精】iOS知识树,知识点(包括对象、Block、消息转发、GCD、运行时、runloop、动画、Push、KVO、tableview,UIViewController、提交AppStore)

        本文旨在总结iOS知识网络,知识点,该知识网络罗列出常见UIKit、Foundation的对象特点和一些使用经验,可以看成是一本书;文本编辑采用树的形式,对知识点进行罗列,并标注一些使用经验(★)希望对初学者有用或给一些解决疑难杂症者提供思路;某些知识点会深入探讨;通过总结希望站在...

2016-02-29 00:02:37 12637 9

原创 Unicdoe【真正的完整码表】对照表(一)

真正完整的Unicode码表,其中CJK = Chinese-Japanese-Korean  下面列举了一些相关的索引。查看完整索引到:http://blog.csdn.net/xjgprs/article/details/5780574 2E80-2EFF:CJK 部首补充 (CJK Rad...

2013-06-07 22:13:26 444835 4

原创 Unicdoe【真正的完整码表】对照表(二)汉字Unicode表

注意:下面这两段是代理区。即第1——16平面的间接表示,四个字节的汉字就在这里表示 D800-DBFF:High-half zone of UTF-16 DC00-DFFF:Low-half zone of UTF-16 本篇中包含了所有常用汉字27973个,剩余汉字使用代理区标识 ...

2013-06-07 11:20:23 301895 5

原创 push和present 两种方式。viewWillDisAppear,viewDidDisAppear的顺序

一图胜万语

2020-05-26 16:49:50 61 0

原创 NSNotificationCenter 如果name是空?是什么效果?

典型的NSNotificationCenter使用方法: [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector...

2020-05-11 10:15:08 100 0

原创 [UIView animateWithDuration:completion:]被卡主,延迟执行了completion:回调

视频项目中遇到一个bug,横屏播放视频时候,转到小屏后。页面卡主了,点击页面没效果。但是点击播放器可以响应。debug时候查看UI层级,发现:在转屏过程中,转屏动画没有执行完(动画的completion:)没有执行。导致一些View设置没有得到执行。 断断续续,查了几天发现是视频弹幕的动...

2020-05-11 10:03:33 165 0

原创 iOS Hook系统类的办法,比如:UITextSelectionView

由于UITextSelectionView是系统的私有类,连头文件都没有。那么我们怎么hook它的方法呢。比如初始化方法initWithInteractionAssistant: //步骤一 Method originEat = class_getInstanceMethod(...

2020-04-22 17:13:16 181 0

原创 当自己视频APP,遇到别人音频APP后台播放音频时候

当别家音乐APP播放音乐,打开自家视频APP(虽然没有播放视频),但音乐app的音频却暂停了(如果是钉钉语音会议这种情况,会自动退出语音会议)。 查了资料:这是音频打断处理问题,举个例子: 第一种情况:比如闹铃打断的情况。先是AVAudioSessionInterruptionT...

2020-04-13 17:56:48 182 0

原创 UISlider 延迟调用touchesBegan,延迟调用valueChangeHandle。delay?

今天遇到一个体验问题。播放器的UISlider的thumbImage在拖拽后不是立即响应,而是等了0.3或0.5或1秒后才响应。(如何扩大thumbImage的响应区域,可百度)。如图所示: 虽然hitTest已经是UISlider了,但是,仍然登录0.x秒才执行touchesBegan...

2020-04-08 23:57:34 94 0

原创 iOS端使用DSA加密

iOS 使用RSA就不说了,系统支持RSA。但是DSA只有mac os支持。所有APP需要DSA签名就需要借助openSSL库了。openSSL库有人编译好了,也可以自己编译(https://github.com/x2on/OpenSSL-for-iPhone) 第一步、下载上面的githu...

2019-11-21 19:40:48 107 0

原创 OC 对同一个方法进行多次交换(Method Swilzzling)

Method Swizzing主要用于在运行时将两个Method进行交换.例如:交换实例方法: Method originMethod = class_getInstanceMethod(target, originalSelector); Method swizzledMethod...

2019-10-21 13:19:25 171 0

原创 UICollectionView 刷新后空白,cell的hidden全是yes自己隐藏了。

网上也有同学遇到此类问题。我这边出现空白的原因是:本来collectionview的contentSize比frame小。中间手动将其contenSize改为和frame一样大。为了能够上下滑动(当时不知道有一个属性self.collectionView.alwaysBounceVertical ...

2019-08-28 11:13:22 746 0

原创 ios 通过代码调整焦距

我们在自定义相机时,若要实现镜头变焦,也就是推近或者拉远焦距,iOS 7以后的实现:可以通过修改AVCaptureDevice的 方法rampToVideoZoomFactor withRate 来实现镜头变焦,带有动画(本质上是修改AVCaptureDevice的缩放系数videoZoomFac...

2019-08-25 22:38:42 536 0

原创 iOS APP在前台收到push,弹出系统框

在iOS9以前,APP前台可以收到push的数据,但是没有UI展示,需要APP自己展示。iOS 10以后,苹果统一使用UserNotifications ,以前的API都被标为弃用了。 在appdelegate 中添加代理和代理方法。 #import <UserNotifications...

2019-06-21 13:09:19 1719 0

原创 【技巧】reloadSection和relaod方法。cell复用规则不太一样

reloadSection和relaod方法。复用规则不太一样: - (void)reloadSections:(NSIndexSet *)sections withRowAnimation:(UITableViewRowAnimation)animation NS_AVAILABLE_IOS...

2018-11-27 20:40:04 841 3

原创 事物分段处理的好处,字符串处理

今天处理一个十六进制色值和alpha的问题,忽然想到。事物分段处理,逻辑容易的多。这也让我想起了快速排序 现在有一个字符串@"#ffffff,0.2"或者@"#ffffff"这种无alpha默认是1.0,程序要将其解析成一个色值和alpha值。 老的处理...

2018-10-25 09:53:12 368 0

原创 Mac 分卷压缩,解压。纯命令行实现

Mac 分卷压缩,解压。纯命令行实现,不需要解压软件。 一、 分卷压缩     【前提】:把文件夹先压缩一次。生成original.zip,然后对original.zip进行分段压缩。 zip - largefile | split -b 500k -a 3 - file.zip lar...

2018-10-24 10:23:13 5974 0

原创 迁移项目到新git地址

1. 创建一个新的git地址,创建自己ssh key(不是Deploy key) 2. 进入旧工程目录 3. 通过下面的命令 git init git remote set-url origin #新git地址,git@开头 git push --all git push --tag 这样...

2018-10-24 10:22:34 1328 0

原创 JS的原型链,这个图你没见过

想到Objective-C有个isa指针,对象的isa指向类,类的isa指向元类,元类的isa指向自己。正是有了isa指针,才有了强大的runtime功能。 那么,前端技术js也有自己的指向关系,这里借用《JavaScript高级编程》中的描述: 每个构造函数都有一个原型对象(prototyp...

2018-10-15 14:01:36 332 0

原创 NSNotification 也有”消息转发“,会不会崩溃呢?

NSNotification与多线程 官方文档:In a multithreaded application, notifications are always delivered in the thread in which the notification was posted, which...

2018-09-26 22:51:21 224 0

原创 用iPhone查看pc电脑上写的html(Mac电脑Charles)简单版

        对于客户端同学开发来说,写一段代码想在真机上看看,是非常容易的。         那么在这么一个大前端的环境下,客户端开发想写点html和js代码,又想在手机上看看效果,怎么办呢?         需要以下几个步骤: 大体流程:1. 安装webstorm,并设置webstor...

2018-09-10 17:30:10 2053 1

原创 iOS配置证书:Provisioning profile "xx_Distribution" doesn't include signing certificate "iPhone Developer

        正常情况下,顾名思义:provisioning文件没有包含xx证书。但是,你再三检查,这个provison包含这个证书呀。甚至重新生成provision文件。结果还是不行?重启XCode,重启Mac都不要用。两个小时过去了。         那么看看是不是下面这个情况: 所...

2018-08-29 11:37:09 7464 1

原创 iOS 启动就crash,难复现。最后确定是MobFoundation问题

       最近iOS版本客户端崩溃率在1.5%左右,排名最高的是这个栈。当然,fabric已经说明,是内存错乱造成的,崩溃栈已经不准确了。没有复现导致开发很难查这个crash(根据栈提示,好像是block的问题,其实不然)#0. Crashed: com.apple.main-thread 0...

2018-05-08 16:50:03 1940 10

原创 使用git log功能对比两个分支代码变动,增加,删除行数。

git 提供了对比两个版本之间代码改动功能,即可以列出改动多少行代码。比如我们工程,得出的结果是:5.9.5 - 6.0.0 added lines: 4728 removed lines : 2610 total lines: 7338下面说一下步骤。该功能依赖gawk,需要下载包并安装:【一、...

2018-02-12 10:21:24 1447 0

原创 iphone连接mac 的ipv6环境,搭建过程。

需要一个手机A用于共享(只能usb)网络给mac,然后mac设置一下,共享ipv6网络给手机B,我们可以在手机B上调试APP。具体步骤如下:1. 手机A关闭wifi,打开个人热点,此时会弹出来对话框选择用usb还是wif。此处需选择“仅USB”。注意:手机A必须有卡,因为要用它的流量。2. 电脑上...

2018-01-29 11:21:30 2408 0

原创 职场“两个不惊讶”

两个不惊讶:第一个不惊讶:业务能力高的员工离职了,管理者不惊讶。第二个不惊讶:业务能力的员工被开除了,他不惊讶。

2018-01-16 19:31:15 454 4

原创 [经验]Class MediaTransCoder is implemented in both One of the two will be used. Which one is undefined

可以断定是客户端的问题,不是framework的问题。查了很久,最后还是根据控制台输出,找到了问题所在: Class MediaTransCoder is implemented in both /private/var/containers/Bundle/Application/7D09FAA...

2017-11-30 14:18:47 3549 0

原创 masonry实现不规则图片布局【图】

直接上代码,思路是:将那一推图片分为四列,每一列是上下对齐的,不要使用按钮。UIImageView+UILabel即可

2017-11-01 11:40:56 1414 2

原创 https 不支持ip地址?

的确不支持。为啥呢? 拿百度地址为例。访问百度的ip地址,就提示证书不信任,不匹配。原因是:一般来说证书都是以域名为标示的,跟访问的ip地址肯定不匹配。如图

2017-10-19 10:27:13 13402 3

原创 guideImageView.frame = videoPlayerVC.videoPlayerView.bounds;竟然frame不一样

结果guideImageView.frame和videoPlayerVC.videoPlayerView.的frame竟然不一样。这么一句赋值,竟然等号左边的不一样。颠倒了90°。查了资料后发现原来是view2有个transform啊。

2017-09-30 11:46:49 529 0

原创 cell 上下非对称margin新方式

UI设计师总是会设计出一些完美的视觉,但有些完美视觉效果需要特别的处理。前两年总听到一句话:一个漂亮的界面背后总是有一堆肮脏的代码。 先看一个有问题的效果。小图cell和大图cell之间的margin是12.5p,而两个小图cell之间的margin是25p.这是因为。cell的c...

2017-08-31 20:05:42 651 0

原创 [技巧]UIView的hidden和alpha的妙用

现状:暂停和loading都是通过hidden来实现显示和隐藏的。这两个的显示有各自的逻辑。暂停按钮显示5秒消失。loading图根据网络状况出现,消失。 解决原则是:loading视图要比暂停优先级高,即loading会踢走暂停按钮,loading消失,暂停还需要出现(如果有的话)。那么,既然无...

2017-07-13 12:17:15 1809 0

原创 iOS区分不同版本URL schema

iOS项目开发中,同一个APP,在打包时,通常有三种版本:mobile版本,inhouse版本,App Store版本。前者用于程序员debug,inhouse用于测试同学、产品同学和公司其他同学的安装,最后的App Store则是发布版本。三个APP只是bundleID不同,证书不同。功能是完全...

2017-06-14 16:04:17 2624 0

原创 [算法]iOS 视频添加水印,合成视频两种方案(整体渲染和分割渲染)

现手机里有一段视频,通过APP给他添加一个水印。iOS提供了在视频上添加layer的接口,添加一个水印还是很方便的(添加水印)。添加完水印有一个渲染过程,在手机这种设备上还是比较慢的,比如:对1分钟的高清视频(960x540)进行渲染需要20秒左右。如何在现有API基础上提高渲染速度,提升用户体验...

2017-05-25 14:49:40 4327 1

原创 [经验]tableview的contentSize默默自己在变。

项目中遇到一个诡异的问题:tableview的contentSize在滚动的时候自动在变小。这里先说一下项目环境:UIViewController有个tableview,可以通过上拉加载,实现加载更多数据。在一日测试中发现,一直上拉,上拉到第三页的时候。页面反而滚动到了顶部惊讶。上拉加载更多,结果...

2017-05-15 19:02:51 3501 0

原创 scrollRectToVisible 无效的两个原因

除了UIScrollView的ContentSize的width或者height是0的原因外,可能还有一个原因就是UITableview的contentInset是负值,比如: self.tableView.contentInset = UIEdgeInsetsMake(-5, 0, 0, 0);...

2017-05-05 11:49:45 2383 0

翻译 iOS返璞归真,译文系列——UIViewController

UIViewController懒加载他的view。第一次访问视图属性加载或创建视图控制器的视图。 不是所有的“will”回调方法都只与“did”回调方法配对

2017-03-16 15:19:20 1559 0

翻译 iOS返璞归真,译文系列——UIScreen

UIScreen一个uiscreen对象定义了一个基于硬件的显示相关的属性。iOS设备的主屏幕和零个或多个连接的屏幕。一个TVOS装置具有电视连接到设备的主屏幕。使用此类获取连接到设备的每个显示器的屏幕对象。每个屏幕对象定义关联显示的边界矩形和其他有趣的属性,如它的亮度。概要        在iO...

2017-03-16 15:18:33 677 0

翻译 iOS返璞归真,译文系列——UIWindow

UIWindow        UIWindow对象提供app界面的背景,和重要的事件响应交互。Windows本身没有任何可视的表现,但它对view的呈现起着关键作用。每一个view显示在屏幕上,其实是附在一个window上,每个window与应用程序中的其他window无关。应用程序收到的事件,...

2017-03-16 15:18:04 998 0

提示
确定要删除当前文章?
取消 删除