野鸟装备2.0问题一览

原创 2015年11月19日 11:04:19
2.0发布了(在这里安装内测版)。这个大版增加了UGC功能和任务体系,开了发近两个月,碰到的问题也是最多的。

下拉刷新失效。

当UITableView、UICollectionView不够一页的时候,下拉的时候都不会触发UIScrollVIew的scrollViewDidScroll代理方法。由于下拉刷新控件基于scrollViewDidScroll代理方法来实现。所以在创建UITableView、UICollectionView的时候添加:collectionView.alwaysBounceVertical = YES 就好了。//垂直方向遇到边框是否总是反弹

AppDelegate.window与 [UIApplication sharedApplication].keyWindow的区别

在有UIAlertView时,如果调用了keyWindow,就会出现以下异常。
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[_UIAlertShimPresentingViewController navigationBar]: unrecognized selector sent to instance 0x7fb35b6a5c70'
AppDelegate* appDelegate = (AppDelegate*)[UIApplication sharedApplication].delegate;
UIWindow* window = appDelegate.window;
UIWindow* keyw = [UIApplication sharedApplication].keyWindow;
在没有使用UIAlertView时,两者一样,均为我们应用的的Window,其delegate为我们的rootViewController。
在调用了UIAlertView show之后,到UIAlertView消失之前,keyw的值是UIAlertControllerShimPresenterWindow,其delegate是UIAlertShimPresentingViewController。

leftBarButton与rightBarButton的设置。

遵从UINavigationController的设计初衷,当UINavigationController的子VC有孙VC时,子VC的navigationItem.title,navigationItem.titleView,leftBarItems,rightBarItems等属性一定要从孙VC中获取,不要在孙VC的viewWillAppear,viewDidAppear中直接修改NavigationBar.topItem。否则,像野鸟装备的第一层TabBar拥有几个子VC的复杂情况,会在跳转过程中,发生NavigationBar上的内容显示混乱的问题,老码农吃过亏之后痛下决心梳理NavigationBar的显示逻辑,严格遵循UINavigationController的设计初衷,才从痛苦中解脱出来。

关于VC跳转时结束自身导致的白屏问题。

VCA在结束当前启动新的VCB时,如果使用present切换时,会留下白屏。push时不会有。参见野鸟装备的首页。初次登录显示的是视频播放,用户点击“立即体验”后,结束自身并跳转到登录页面。一开始我的方案是直接把视频播放VC设置为rootVC,在用户点击“立即体验”时,结束自身,并present一个NavigationVC,NavigationVC的root是首页的TabVC。但这样做无论机器性能如何,始终有白屏闪现。后来改为把NavigationVC设置为rootVC,并把视频播放VC设置为NavigationVC的root,在用户点击“立即体验”时,pop视频播放VC,再push首页TabVC。这样就不会有白屏出现了。

NavigationVC的root在特殊情况下有默认leftBarItem的问题。

这个问题跟上面第4个问题是有关联的。在第4个问题中,白屏的问题是解决了,但首次进入时,首页TabVC的第一个子VC,也就是“鸟瞰”VC的左上角会显示系统默认的返回。
最后解决方案是给首页TabVC的几个子VC加上空的leftBarItem。

iOS7.0下,VC结束时回调delegate导致崩溃。

iOS7.0上,如果VC是被present出来的,当dismiss自身之后,其property都会被置为nil。这个要注意,尤其是需要回调给调用方结果的,需要先把property保存在局部变量中,再dismiss自身,再调用delegate的方法。

iOS7.0下无法启动新VC。

UIImagePickerController的回调方法中,如果你先dismiss UIImagePickerController,然后紧接着就要启动新的VC时,一定要小心,在iOS7.0上面,会发现启动不起来新的VC,Xcode控制台会打印:Attempt to present <XXXViewController> on <UINavigationViewController> while a presentation is in progress!
原因是启动新VC时,UIImagePickerController还没有完全dismiss掉。解决方案就是:
[picker dismissViewControllerAnimated:NO completion:^{
     在这里启动新VC。
}];

判断当前VC是否可见。

我这里有一个需求,是在用户分享(微信、QQ等)完成之后,需要上报分享信息。选择上报的时机就是用户完成分享,回到野鸟装备时。因为上报模块可能存在于多个VC中,这时就需要有一个逻辑判断,只有当前可见的VC才具备上报资格。如何判断,有几种方式,我选的是第三种:
1、appear和disappear之间设置BaseViewController的变量
2、判断topVC是否自己,这个要注意NavigationVC和TabBarVC的情况。
3、判断当前VC的view.window是否为nil。这个最简单。

UIButton设置contentMode无效。

这么搞就可以了
imageButton.imageView.contentMode = UIViewContentModeScaleAspectFill;
imageButton.contentHorizontalAlignment= UIControlContentHorizontalAlignmentFill;
imageButton.contentVerticalAlignment = UIControlContentVerticalAlignmentFill; 

SDWebImage加载图片失败的问题

有一个选项,SDWebImageRetryFailed,默认是没有开启的,因此一旦图片加载失败,就不会再重试。需要把这个选项打开。
版权声明:本文为农场老马原创文章,未经农场老马允许不得转载。

野鸟装备2.0版本审核被拒2次的原因及解决方案

这次真悲催,连续被找了两次。第一次:10.6 - Apple and our customers place a high value on simple, refined, creative, we...

野鸟装备2.2版本开发问题

林子的达人列表中,最近发表的3条UGC内容图片是个Button,开始时怎么都不显示图片,图片加载成功后被填充了蓝块,后来发现需要在xib中把Button的type设置为Custom才行。贴纸合成问题:...

野鸟装备IOS版开发笔记(1.0版本)

欢迎关注老码农的微信公共账号,与CSDN博客同步  野鸟装备终于要上线了,总结一下遇到的坑,供大家品尝。 调用弱引用的block属性崩溃 遇到的第一个技术性崩溃,是因为调用弱引用的block属性...

Objective-C 2.0 新特性一览 – 属性。

属性是一种定义类所提供的数据的通常方法。在Movie这个类里,诸如“标题”,“工作室”和“发布年份”等等都算是属性。这里是用Objective-C 1.x语法定义的Movie类: 1 2 3 4...

【算法导论】装备线调度问题

本程序为算法导论中动态规划章节(15.1)的装配线调度问题的C++实现代码,具体问题就不详细说明了,代码如下: #include #include const int max_len = 6; i...

智能装备调试和安检问题的解决办法

随着工业4.0时代的到来,产业改造升级的任务已经刻不容缓。各种高度智能化自动化信息化的设备被越来越多的应用到各行各业。由于设备的科技含量越来越高,涉及的领域也越来越宽广,因此通常一套设备既要有功能丰富...

windows服务器环境下apache内存释放及死机问题解决办法一览

http://hi.baidu.com/seo0775/item/27e4891f7e64536d70d5e841 windows服务器环境下apache内存释放及死机问题解决办法一览 ...

深度学习岗位面试问题一览

来源:AI研习社 本文作者许韩,本文首发于作者的知乎专栏《许韩VS许韩》, AI研习社获其授权发布。 本笔记主要问题来自以下两个问题,以及我自己面试过程中遇到的问题。 深度学...

史上最全的CSS hack方式一览(解决IE6-IE11,Firefox/Safari/Opera/Chrome兼容问题)

做前端多年,虽然不是经常需要hack,但是我们经常会遇到各浏览器表现不一致的情况。基于此,某些情况我们会极不情愿的使用这个不太友好的方式来达到大家要求的页面表现。我个人是不太推荐使用hack的,要知道...

深度学习岗位面试问题一览

本文作者许韩,本文首发于作者的知乎专栏《许韩VS许韩》, AI研习社获其授权发布。 本笔记主要问题来自以下两个问题,以及我自己面试过程中遇到的问题。 深度学习相关的职位面试时一般会问什么?...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:野鸟装备2.0问题一览
举报原因:
原因补充:

(最多只允许输入30个字)