iOS

UIImage Rendering Mode

最近调第三方代码的过程中发现,有一个 UIImage,无论将图片替换成什么,在页面上始终显示成蓝色。经过代码阅读,终于发现了猫腻: [image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]; 简化版代码: theImageView.image = [theImageView.image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]; [theImageView setTintColor:[UIColor redColor]]; theImageView.image = [theImageView.image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]; [theImageView setTintColor:[UIColor redColor]]; WatchKit 中的使用

iOS

XcodeGhost 代码分析

最近几天 Xcode Ghost 事件炸开了锅。 事情源自知名 iOS 开发者唐巧的一条微博(2015-09-17 09:45,周四): 临近周末,自称是原作者的微博用户发表了公告,表示这只是一次没有恶意的试验,同时还将源代码放到了 GitHub 上。微博发送的时间是凌晨04:40,看来原作者这段时间过得并不轻松。 随后(早晨08:47),唐巧对这条微博进行了转发,并对照逆向工程的结果,给出了自己的结论: 从“原作者”的公告来看,这段代码做了两件事: 搜集设备信息,并发到指定的服务器 广告功能(

iOS

Xcode 插件推荐

Xcode 是一个不完美的 IDE,需要安装插件来进行功能扩展,方便日常开发。 安装下面的插件前,需要首先安装 Xcode 的插件管理工具:Alcatraz。 VVDocumenter 规范注释生成器。输入三个斜线 ///,快速生成规范注释。配合 Doxygen,可以省去绝大部分文档撰写工作。 SCXcodeMiniMap 提供类似 SublimeText 中的代码“小地图”,方便快速定位到文件中的某一块代码。 update: SCXcodeMiniMap 会导致 Xcode 7 崩溃,截至 Xcode 7.2

iOS

去掉 UITableView 顶部的多余空间

将 UITableView 的 style 设为 grouped 后发现顶部出现了大约有35px的额外空白。 原因是 group 样式的 UITableView 顶部会生成自带初始高度的 tableHeaderView。解决方案将 tableHeaderView 替换成一个高度为0的 UIView。首先尝试将高度设为 CGRectZero: // 这种写法有问题 UIView *tableViewHeaderView = [[UIView alloc] initWithFrame:CGRectZero]; self.tableView.tableHeaderView = tableViewHeaderView; 另外,如果 UITableView