Matt Reach

「Stay Hungry, Stay Foolish」

IOS 刷新 UITableView 的 section 时崩溃

问题描述 在调用UITableView的如下方法时崩溃 1 2 NSIndexSet *indexSet=[[NSIndexSet alloc]initWithIndex:1]; [tableview reloadSections:indexSet withRowAnimation:UITableViewRowAnimationNone]; 崩溃信息如下 1 2 3 4 5 6 7...

Core Animation 与 UIView.frame

引言 在做一次关于Core Animation的分享时,老大提出了一个很是尖锐的问题——如果让layer保持动画后的状态,那么layer对应的view的响应区域是否是动画后view展示在屏幕上的区域?带着这个问题,开启Core Animation与view.frame的讨论。 Core Animation 与 view.frame 首先,先来看一下Core Animation对...

使用信号量解决多线程同步问题

临时帮忙去做了一期千帆小视频的SDK,大致的流程是这样的 : 录制小视频公开了两个串行队列,一个是处理摄像头回调的,一个是处理麦克风数据回调的,当用户按下录制按钮时开始采集音视频,通过代理方法拿到一帧帧的数据,当检测到音频1时就创建一个编码器,开始编码,用户松手后停止编码。 IMP 看代码之前需要说明下,转码器的创建、开始/停止编码要在同一个线程中,这些操作是不耗时的,为了简单就...

C语言malloc、free、memmove

在开发斗地主的语音房时,显示当前音量用的C语言实现,会分配buffer地址,最后释放buffer,使用了malloc、free和memmove等方法。 三个方法的具体使用如下: malloc void *malloc(long NumBytes); 该函数分配了NumBytes个字节,并返回了指向这块内存的指针。如果分配失败,则返回一个空指针(NULL)。 失败的原因有多种,比如说空间...

UIScrollView 的 scrollsToTop 失效问题

一般情况下,当前页面有滚动视图(UIScrollView或者UIScrollView的子类)时,触摸状态栏,视图会自动滚动的最顶端。如果页面有多个滚动视图,且是iOS10.0以下的系统,你会发现触摸状态栏没有反应了,回到顶部功能失效了。目前iOS10.0或以上系统没发现存在这个问题。 解决方案 经研究发现,UIScrollView有个scrollsToTop属性,这个属性就是控制...

UIButton 设置图片的 contentMode

在开发彩蛋红包时,有两个发送红包的按钮 “+”和 “-”。这两个按钮是两张图片。在设置图片时,发现其不能很好的适配6 plus机型,如下图所示。于是我尝试了设置图片的contentMode: 1 [minus.imageView setContentMode:UIViewContentModeScaleToFill]; 然而并没有什么卵用。。。图片还是不能填充整个按钮,后来查阅...

CALayer 的 anchorPoint 与 position

在项目中要实现一个动画,想让view从底部展开,经过搜索,知道了CALayer的anchorPoint可以控制动画的固定点,遂直接写了如下代码: 1 2 3 4 5 6 7 self.redView.layer.anchorPoint = CGPointMake(0.5, 1.0); self.redView.transform = CGAffineTransformMakeSca...

Main Thread Checker

我的测试机升级到 iOS11 beta10 之后,发现了严重的问题,我的手机直接卡死了,只有强制关机!这是我使用 Xcode 调试抓到的日志: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 Mai...

SDK-issues 简介

该分类由千帆 SDK 团队共同维护,主要用来记录 SDK 开发过程中遇到的各种问题以及解决方案。写成博客记录是为了供组内其他成员学习参考,这样知识才能像血液一样在整个团队里不停循环,为我们注入更多的新鲜血液! 提升团队整体战斗力,拉低技术差距。 我为人人,人人为我。 Hello,SDK issues

安装 iOS 11

9月12号苹果会发布新一代设备 — iPhone8,搭载 iOS 11 是肯定的,现在测试已经提了一些 iOS11上的问题了,因此我决定把我的设备也升级到 iOS 11,用来解 bug,适配等工作。 安装途径 以下两种方式都可行,各有优缺,自行选择吧: OTA升级 到开发者中心,去下载 OTA 升级的一个描述文件: 这个描述文件需...