野鸟装备2.0问题一览

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;

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-14 16:10:38

野鸟装备2.0问题一览的相关文章

野鸟装备2.0版本审核被拒

这次真悲催,连续被找了两次. 第一次: 10.6 - Apple and our customers place a high value on simple, refined, creative, well thought through interfaces. They take more work but are worth it. Apple sets a high bar. If your user interface is complex or less than very good

野鸟装备2.2版本开发问题

野鸟装备iOS 2.2内测版发布了.以下是开发问题汇总,请欣赏!下载App点这里 林子的达人列表中,最近发表的3条UGC内容图片是个Button,开始时怎么都不显示图片,图片加载成功后被填充了蓝块,后来发现需要在xib中把Button的type设置为Custom才行. 贴纸合成问题: 野鸟装备2.2新增了贴纸功能,但在贴纸完成后输出图片时发现输出的图片非常模糊.原来是使用UIView截屏的原因.使用下面的办法就可以了. 1.直接新起一张画面,把背景图和贴纸的UIImage依次渲染上去.这个比较好

野鸟装备2.2版本号开发问题

野鸟装备iOS 2.2内測版公布了.以下是开发问题汇总,请赞赏! 下载App点这里 一. 林子的达人列表中,近期发表的3条UGC内容图片是个Button,開始时怎么都不显示图片.图片载入成功后被填充了蓝块.后来发现须要在xib中把Button的type设置为Custom才行. 二.贴纸合成问题: 野鸟装备2.2新增了贴纸功能,但在贴纸完毕后输出图片时发现输出的图片很模糊.原来是使用UIView截屏的原因.使用以下的办法就能够了. 1.直接新起一张画面.把背景图和贴纸的UIImage依次渲染上去.

Spark1.0.0生态圈一览

Problem Description Chinachen is a football fanatic, and his favorite football club is Juventus fc. In order to buy a ticket of Juv, he finds a part-time job in Professor Qu's lab. And now, Chinachen have received an arduous task--Data Processing. Th

野鸟装备iOS版开发笔记(1.5.0)

每次发版,如果不出点儿问题,反而不正常了. 1.打包时提示调用了私有API: The app references non-public symbols in yeniao: _UICreateCGImageFromIOSurface 网络上搜索,发现是Reveal.framework的问题,果然去掉,验证通过. 另外,第一次上传时,使用的1.5.0(3),解决掉上面的问题之后,第二次上传时必须把版号和build版本号修改一下,都相同的话是上传不上去的. 2.使用Settings.Bundle做

Spark1.0.0 生态圈一览

Spark生态圈,也就是BDAS(伯克利数据分析栈),是伯克利APMLab实验室精心打造的,力图在算法(Algorithms).机器(Machines).人(People)之间通过大规模集成,来展现大数据应用的一个平台,其核心引擎就是Spark,其计算基础是弹性分布式数据集,也就是RDD. 通过Spark生态圈,AMPLab运用大数据.云计算.通信等各种资源,以及各种灵活的技术方案,对海量不透明的数据进行甄别并转化为实用的信息.以供人们更好的理解世界.Spark生态圈已经涉及到机器学习.数据挖掘

虚继承

------------------siwuxie095 看如下实例: 有 4 个类,其中:类 A 是父类,类 B 和 类 C 都继承 类 A, 而 类 D 继承了 类 B 和 类 C,称这种继承关系为 菱形继承 在菱形继承中,既有多继承,又有多重继承: 那么问题来了: 当实例化 D 的对象时,发现:D 是从 B 继承来的,B 是从 A 继承来的, D 也是从 C 继承来的,C 是从 A 继承来的 这样,D 中将含有两个完全一样的 A 的数据,这种情况是不能容忍的, 因为在一个对象中有两份完全相

对象成员

--------------siwuxie095 对象成员 在对象中包含其它对象是一种非常普遍的现象 以坐标系中的线段为例:说明对象成员的定义和使用方法 如果要定义一个如上图所示的线段类,每条线段都由两个点连接而形成, 这意味着,需要定义一个表示点的类,该点类包含横坐标和纵坐标,而 线段类包含两个坐标对象 可见,要描述清楚这个数学问题,至少要定义两个类:一个定义坐标的 点,另一个定义点上的线段 坐标类:Coordinate 线段类:Line 定义完成后,通过实例化来描述一条线段: 当实例化 Li

WorldChat.lua --世界聊天

print(">>Script: Wolrd Chating.") local SAY=" "--普通聊天 local TEAM_ALLIANCE    = 0    --联盟阵营local TEAM_HORDE    = 1    --部落阵营local MyEquip="~me"local CLASS={--职业号    WARRIOR         = 1,        --战士    PALADIN