Fire Studio

记录,学习,成长


  • 首页

  • 标签

  • 分类

  • 归档

  • 关于

  • 站点地图

关于 iOS 应用主题管理与动态切换的一些想法与实现

发表于 2019-07-20 更新于 2019-08-06 分类于 iOS , UIKit , Swift 评论数: 阅读次数:

今天突然想写篇博客,看了上一篇的发表时间,已经快接近三年半了,着实惭愧啊~。这篇文章主要介绍一下前段时间突发奇想写的一个管理 iOS 主题的开源小库:ThemeManager。

为何要实现一个管理主题的库

其实做一个方便管理和切换 iOS 主题的库的想法是好几年前的事了,在这期间脑补过很多实现方案,当想开始做的时候又由于想到了方案的不足再加上我对切换主题没有什么需求,导致一直搁浅。前段时间突发奇想,来了灵感,先在脑袋里打了个草稿,几周后着手开始做,加上一两天空闲时间做的实验,最终花了我一晚上的时间(下班后,包括代码 + Demo + README + 适配各种依赖管理工具(Swift Package, Carthage, CocoaPods,包括本地测试) + 传到 CocoaPods 上,最终两点多完成)终于把这个库做出来了。所以做这玩意纯粹是个人兴趣加上突发奇想。

阅读全文 »

Swift 下 OpenGL 截图容易导致的内存泄露

发表于 2016-03-11 更新于 2019-03-27 分类于 Swift 评论数: 阅读次数:

由于业务需求,需要对两个(现在是三个了)中的一个 OpenGL 渲染的视图进行截图并增加模糊效果。开始用传统的方法进行截图,但是失败了(截取的是黑屏还是空白,忘记了。。。),后来意识到这个和一般的视图应该是不一样的,就到 Google 上搜了一下。由于没怎么玩过,又不怎么懂,就直接翻译成 Swift 了。开始是没发现什么问题的,都是但是到后来发现截图总是其中一个的(看那个先出来,基本上不是想要的那个),而不是想要的那个。

仔细研究后发现,OpenGL 的截图是根据 RenderBuffer 来截取的,由于没有指定 RenderBuffer 所以截取的图只是其中某一个。知道了这个也没用,由于这个 View 用的是第三方库,所以不知道这个 View 的 RenderBuffer。。。后果经过 Debug,发现这个 View 有个 _colorRenderBuffer 属性,这就好办啦~。经过改造后代码如下:

阅读全文 »

从 Octopress 迁移到 Hexo 后的一些遗留问题

发表于 2016-03-03 更新于 2019-03-27 分类于 Other 评论数: 阅读次数:

上周我讲自己的博客从 Octopress 迁移到了 Hexo,感觉还是很不错的,但是由于Octopress 和 Hexo 存在一些差别,所以导致了如下三个问题:

  1. 以前 Octopress 的网址是包含 /blog/ 的,迁移之后没了,这样会导致由搜索引擎(搜索引擎更新还是很不及时的)的链接和外网引用的链接点过来会跳到404页面
  2. 生成的网址区分大小写了,以前全部是小写的,这会导致以前的小写链接无法打开相应的页面(如 categories/xcode,现在是 categories/Xcode)
  3. 之前的一些文件遗失了(其实也就一个)

今天就来说一下我是怎么解决这三个问题:

阅读全文 »

从 Octopress 迁移到 Hexo

发表于 2016-02-26 更新于 2019-04-03 分类于 Other 评论数: 阅读次数:

很久没写过日志了,原因没有别的,实在是鄙人太!懒!了!自己也想不能继续懒下去,所以决定改变从这里开始,先换个静态博客生成系统吧。好吧~,换系统其实和这个没多大关系,主要是因为 Octopress 已经 N 久没有更新了,还有就是对于一个 N 久没有写过博客的人来说,再用 Octopress 需要重新熟悉一下,相比之下 Hexo 就简单多了,还有就是据说生成速度上 Octopress 要比 Hexo 慢一大截。下面介绍一下 Mac 下 Hexo 的安装过程吧~

阅读全文 »

如何运用更聪明的办法进行Core Data数据迁移

发表于 2014-04-04 更新于 2019-03-27 分类于 iOS , Core Data 评论数: 阅读次数:

这一段时间一个Core Data数据迁移的问题快把我搞死了,上面给的压力也非常大。先说一下来龙去脉吧~

第一次犯错

首先以我为主程的一个应用(绝大部分代码是我写的)由于之前数据库设计的不合理导致应用总是无规律可循的崩溃。这个问题一直存在了好几个月,怎么研究都是无果。后来直到看到Stack Overflow上Core Data: EXC_BAD_ACCESS accessing relationship的帖子(后来还看到这个Semantic Issue: Property’s synthesized getter follows Cocoa naming convention for returning ‘owned’ objects)才意识到自己的愚蠢和无知!我忘记了Objective-C的属性名(Core Data中包括属性名和关系名)不能以new打头,否则就违反了Objective-C的内存管理策略。

请记住:尽量不要使用以alloc、new、copy和mutableCopy等打头的属性名、关系名和方法名,如果必须使用请在声明中使用NS_RETURNS_RETAINED或NS_RETURNS_NOT_RETURNED,否则会导致内存管理问题!!!

阅读全文 »

iOS下如何播放GIF动画

发表于 2014-01-17 更新于 2019-03-27 分类于 iOS 评论数: 阅读次数:

几个月前无意中看到StackOverFlow上的一个帖子How to get suitable CGImage from combined TIFF for display scale了解到了ImageIO这个框架,看到它可以读取TIFF中的单张图片,当时就想能不能读取GIF中的图片呢?后来进一步研究后发现答案是肯定的。后来就想哪天细研究一下吧,顺便写篇博客记录一下。没想到我是这么的懒~,昨天才终于研究好了顺便写了个项目WYZGIFAnimationView开源到了Github上。

阅读全文 »

如何让你的iOS7应用支持键盘快捷键

发表于 2013-12-26 更新于 2019-03-27 分类于 iOS 评论数: 阅读次数:

最近买了个罗技的光能无线键盘(K760)用来连接我的iOS设备,但是发现iOS所支持的快捷键太少了(特别是iPhone),而iPad也仅有那几款应用支持那可怜的几个快捷键。这使得我感觉iOS设备用键盘如同鸡肋。。。因为打字什么的还是要手点。

记得之前了解到iOS 7的UIResponder新增了keyCommands方法,于是今天就研究了一下API文档并且测试了一下,感觉真是太棒了~

下面介绍一下如何让应用支持外接键盘的快捷键,其实很简单!

阅读全文 »

如何在博客中插入Liquid模板变量

发表于 2013-01-23 更新于 2019-03-28 分类于 Other 评论数: 阅读次数:

上周写了一篇博客《让Octopress在新标签页中打开外链》,里面嵌入了一段代码,但是里面有一个模板变量{{ root_url }}却怎么也显示不出来~,后来在Octpress的Issues页面问了一下才知道如何才能不把那些用来显示的代码块中的变量不被解析,具体看https://github.com/imathis/octopress/issues/941#issuecomment-12206038或者Stack Overflow的How to escape liquid template tags?

如何高效的使用XCode

发表于 2013-01-23 更新于 2019-03-27 分类于 Xcode 评论数: 阅读次数:

上周看了WWDC 2012的Session 402 - Working Efficiently with Xcode,顺便记了一些笔记。看了之后才注意到很多Xcode的快捷键和特性都没用过或者说没想到过用,平时用的太死板,只是用了`+R`之类的快捷键。现在把上周整理的笔记贴上来吧

阅读全文 »

让Octopress在新标签页中打开外链

发表于 2013-01-13 更新于 2019-03-27 分类于 Other 评论数: 阅读次数:

今天发现Octopress一个小小的问题,就是无法将外链在新窗口中打开。于是就自己写了一小段javascript代码轻易的解决了这个问题。

阅读全文 »
12
Yozone W.

Yozone W.

iOS Developer
12 日志
8 分类
12 标签
RSS
Links
  • 江乐的博客
  • Sun.Makee
  • 刘铎.Me
© 2013 – 2019 Yozone W.
由 Hexo 强力驱动 v3.9.0
|
主题 – NexT.Gemini v7.2.0