大熊猫猪侯佩 (︶^︶)

hopy是一只贪吃贪睡爱鹅鹅的大熊猫猪

排序:
默认
按更新时间
按访问量

iOS一步步妆点动画使界面元素迸发新活力

本博在iOS原有静态界面的基础上,一步步尝试使用动画来突出选择动作,使原来呆板的元素瞬间鲜活了许多,为用户打造活力满满的界面。 没有动画的世界 原来的界面很简单,用户通过段选择器(UISegmentedControl)来选择切换两个不同的UILabel,如下所示: 由上至下两个UILabel...

2018-12-05 14:07:59

阅读数:53

评论数:0

iOS解决控制器转场和返场界面卡顿的一种方法

本博介绍了在控制器转场和返场时界面发生卡顿的一种解决方法,主要思想是使用视图快照功能来提供一个静态的伪视图以提高性能. 转场和返场 转场是指从控制器A切换到控制器B中,这意味着控制器A被隐藏: 控制器A -> 控制器B 而返场是指从控制器B切换回控制器A,这意味着控制器...

2018-12-02 16:33:41

阅读数:873

评论数:0

iOS:UITableViewCell中Label位置无法正确约束的问题

由于UITableView中某一行文字过多,需要扩展Cell的高度,该Cell的样式是.subtitle: 注意其中的detailTextLabel并没有垂直居中!!! 咋一看解决应该很简单,做一个约束不就行了: $0.cell.detailTextLabel?.snp.updateConstr...

2018-12-01 09:40:47

阅读数:40

评论数:0

Swift中由找不到removeAll(where:)方法引起的连锁反应(下)

提示:本篇博文涉及到第三方库Eureka,但核心思想在于Swift内部数据处理的推断,不了解Eureka并不影响对本文的理解。Eureka只不过是对UITableView的便捷包装而已,需要进一步了解Eureka的童鞋可以观赏本猫Eureka学习系列博文。 上篇在此 : Swift中由找不到r...

2018-11-29 12:25:13

阅读数:50

评论数:1

从App随机崩溃(KVO_IS_RETAINING_ALL_OBSERVERS...)到彻底修复的回顾(上)

本博通过具体的实例向大家展示如何一步步通过合(xia)理(cai)分析找出问题的罪魁祸首,适合有一定调试经验的童鞋,也欢迎各路神仙和小白围观,本人水平一般,欢迎指正,但我就是不改. 崩溃特征 0.崩溃的类型是EXC_BAD_ACCESS 1.App崩溃虽说是随机的,但在一定次数的相同...

2018-11-27 11:06:53

阅读数:631

评论数:4

Swift中由找不到removeAll(where:)方法引起的连锁反应(上)

提示:本篇博文涉及到第三方库Eureka,但核心思想在于Swift内部数据处理的推断,不了解Eureka并不影响对本文的理解。Eureka只不过是对UITableView的便捷包装而已,需要进一步了解Eureka的童鞋可以观赏本猫Eureka学习系列博文。 核心代码 section.r...

2018-11-23 07:42:04

阅读数:1567

评论数:7

更仔细些:让你看懂Xcode链接错误提示

修改了代码里一个地方,编译都过不去,Xcode提示如下: 注意,只是链接器报错,但并未定位到实际代码的某一行里!!! 一般来说这个问题往往是因为代码对象.o文件和实际不一致导致,我们需要删除App文件或.o,文件确保其重新生成即可。 但在这里却又不一样… 因为检查.o文件名,并不在一个库中! 仔...

2018-11-18 15:10:42

阅读数:50

评论数:0

iOS获取iCloud文件实际大小的方法

我们知道在iCloud文件未同步到本地之前,它实际上只是一个占位文件。 如果iCloud文件名为look.pdf,那么实际本地的文件是.look.pdf.icloud,尽管你实际在Find中看到的貌似是look.pdf。 实际上.look.pdf.icloud是一个二进制的plist文件(bpli...

2018-11-18 13:12:48

阅读数:162

评论数:0

Swift与Objc混搭在数组内部查找时需要注意的一点

现在随着Swift越来越趋于完美,很多人开始使用Swift来写代码. 在Swift与Objc结合使用时,还是要注意一些地方,比如数组元素的查找. 从Swift里传入一个Node对象,在Objc里Node数组里查询,往往你就找不到

2018-11-16 10:14:20

阅读数:31

评论数:0

Swift让数组支持深拷贝

当数组的元素为对象时才考虑深拷贝,如果是结构就没有意义了。 只有数组的对象支持NSCopying协议时,数组才可以支持深拷贝。 有了如上共识,我们可以很快写出Demo来: 首先是测试类: class Foo:NSCopying{ func copy(with zone: NSZone? =...

2018-11-15 14:59:19

阅读数:53

评论数:0

iOS本地化对于字符串可变内容支持的一个小技巧

我们知道iOS对于App本地化支持提供了较方便的接口,我们只需要在本地化支持文件中设置好各种语言对应的字符串就可以了,比如: //英文 “NameString" = "Name"; //中文 "NameString&...

2018-11-14 16:09:42

阅读数:54

评论数:0

iOS项目编译失败提示找不到静态库的解决

在我的iOS项目中嵌入了一个自己写的静态库工程,之前在模拟器上运行都是正常,静态库的名字是:HyCommon,在我的App工程中有: import HyCommon 今天打算切换到真机上运行,编译时提示:无法找到静态库HyCommon.(之前也在真机上调试运行过,都是正常的). 检查项目的确生成...

2018-10-31 21:06:44

阅读数:51

评论数:0

原项目在Xcode 10中进行单元测试总是失败的解决

原来项目都是在Xcode 9下写的,测试使用的是Nimble和Quick库. Xcode更新到10后,测试时发现出错,错误内容大致是:无法打开App中PlugIns目录中的xctest文件,进一步提示是无法找到对应的符号! 按照文档所说,将测试target的iOS Deployment Targe...

2018-10-22 20:47:50

阅读数:91

评论数:0

CoreData项目运行时报错:无法解码root key

支持CoreData的App运行时报错了: <NSSQLObjectFaultRequestContext: 0x6000004a1080> , *** -[NSKeyedUnarchiver decodeObjectForKey:]: cannot d...

2018-10-22 08:56:46

阅读数:76

评论数:0

Swift中自定义类==比较方法未被调用的分析和解决

在项目中自定义了2个类:A和B,其中A含有B的实例变量. 在这2个类中都定义了==比较方法,按照正常来说:比较A,必然比较B.因为需要比较A中类型为B的实例变量. 但实际运行中发现,两个字面上完全一样的A实例对象,比较竟然不相等!!! 在A的==方法中下断点,发现3个问题: 比较不相等是因为其中...

2018-10-21 16:01:55

阅读数:80

评论数:0

ObjectMapper与CoreData结合使用在类初始化时出现访问违例的分析和解决

ObjectMapper是一个便捷的Swift类和JSON互转的库,它为iOS实体模型多提供了一种实现方法. 它可以和CoreData配合完成一些有趣的功能. 但在使用过程中在感受到便捷的同时也发现了一些问题,记录下来供自己和大家参考. CoreData托管某类实例变量如下: @NSM...

2018-10-20 16:49:56

阅读数:100

评论数:0

iOS中TabBar显示模式VC时切换TabItem的奇怪行为

本猫App的UI层次大致如下: TabBarVC NavVC 若干子VC NavVC 若干子VC NavVC 若干子VC NavVC 若干子VC NavVC 若干子VC 各个VC之间切换都很正常...

2018-10-11 08:59:34

阅读数:131

评论数:0

iOS中TabBar背景图片不显示问题的解决

App中计划使用UITabBarController(后面简称为TBVC)的自定义子类来实现根VC. 因为调试目的,开始是将TBVC当做一个子VC来使用,即用占位VC作为根VC,然后点击按钮切换到TBVC,这样一直都没什么问题…一直到… 将占位VC甩开,直接使用TBVC当做根VC,这时出现问题了...

2018-10-09 10:21:44

阅读数:112

评论数:0

MultivaluedSection类在不同Eureka源中不同行为的分析和修正

Eureka中含有MultivaluedSection类,用来实现Section的编辑功能,这里编辑是指:对Row的删除,排序和插入. 但是本猫发现Eureka在CocoaPods和GitHub中同样的4.2.0版本,其删除行为却不太相同,这可能对新手有所困惑,所以这里做一些解释,对自己和别人都...

2018-10-01 19:02:03

阅读数:96

评论数:0

如何一劳永逸的修改某类UIView所有对象的外观

修改某一个UI子类的外观很容易,但是如果有1万个对象需要修改怎么办? 而且我还不想子类化和扩展该类! 拿导航栏上的UIBarButtonItem对象来说。 如果我想修改其在导航栏上的位置,可以这么做: UIBarButtonItem().setBackButtonTitlePositionAdju...

2018-09-29 09:54:28

阅读数:152

评论数:0

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