06 2013 档案

iOS内存错误EXC_BAD_ACCESS的解决方法(message sent to deallocated instance)
摘要:iOS开发,最郁闷的莫过于程序毫无征兆地就崩溃了,用bt命令打出调用栈,给出的是一堆系统EXC_BAD_ACCESS的信息,根本没办法定位问题出现在哪里。通常这样的崩溃出现,原因一般就是:调用了已经释放的内存空间,或者说重复释放了某个地址空间。而怎样定位到这个地址呢,可以通过编辑xcode的scheme,添加如下标记位,让系统把错误地址打印出来,如图:(通过Product->Scheme->Edit Scheme进入下面编辑页面,选中Arguments tab,增加标计位NSZombieEnabled设为YES)这样,但崩溃出现,系统会出现以下提示信息:2013-06-23 00: 阅读全文

posted @ 2013-06-23 01:14 VicStudio 阅读(17593) 评论(0) 推荐(1)

iOS国际化和genstrings所有子目录本地化字符串
摘要:最近在忙着一个国外项目,天天加班,没时间更新博客。就简单讲讲国际化的知识。 首先,我们使用字符串,必须用NSLocalizedString(key,comment),这样我们在不同的Localizable.strings对key指定不同的值,系统会根据当前系统语言,去不同的lproj找不同的字符串。用个图显示吧:我们应用只支持中文,英文,所以只建了zh-Hans.lproj和en.lproj,然后在Localizable.strings指定了不同的值。举例如下:这样程序就能根据系统语言,去选择“登录”还是“Log In”。 但是如果每次加了一个本地化字符串,就得手动去Localiz... 阅读全文

posted @ 2013-06-20 23:36 VicStudio 阅读(1642) 评论(0) 推荐(0)

iOS基础界面和导航详解
摘要:iOS基础界面就是通过UIViewController展示的。首先区分content controller和container controller的区别。content controlller就是展示我们当前页面的controller,而container controller就是一个管理content controller的容器,基本就是UINavigationController和UITabbarController,本身它也是继承UIViewController,一个UIViewController压栈就是把它加入到container controller的view上。下面说一下UIV 阅读全文

posted @ 2013-06-16 00:46 VicStudio 阅读(1535) 评论(0) 推荐(0)

iOS处理通话或录音状态中界面错乱的重布局
摘要:可以知道的是,iphone设备在通话或录音状态中,状态栏下移了20个像素,这时controller的view的frame的高度就减少了20个像素,所以我们需要根据view的frame去布局子view。但是可恨的是,当状态栏还原回去的时候,系统并没有帮我们还原回去。试了一下微信跟陌陌,都有这个问题:(下面暴露的有关人员,不是故意的哈,不要追究我的责任) 看了一下UIViewController的api,发现在ios5.0以后多增加了两个函数:- (void)viewWillLayoutSubviews - (void)viewDidLayoutSubviews 试了一下,发现如果一个Contr. 阅读全文

posted @ 2013-06-14 19:55 VicStudio 阅读(2451) 评论(0) 推荐(0)

iOS用图片设置背景颜色colorWithPatternImage
摘要:有时候UI给的背景都是一张图,而我们并不想刻意去插入一个UIImageView作为背景,这里就直接可以用一张图来填充背景: UIImage *bgImage = [UIImageimageWithContentsOfFile:@"...\background.png"]; UIColor *bgColor = [UIColor colorWithPatternImage:bgImage]; self.backgroundColor =bgColor;但是如果在4.3系统,如果这张背景图是有阴影或透明效果,就会看到透明或阴影的地方变成黑色了。所以需要手动设置一下不透明度: s 阅读全文

posted @ 2013-06-13 00:16 VicStudio 阅读(5367) 评论(0) 推荐(0)

关于hitTest和UIResponder
摘要:今天仔细看了一下UIView和UIResponder的介绍,着重看了一下hitTest的介绍。首先是官方的:-(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event1.我们都知道,一个屏幕事件由响应链一步步传下去。这个函数返回的view就是可以让你决定在这个point的事件,你用来接收事件的view。当然,如果这个point不在你的view的范围,返回nil。2.这个函数忽略userInteractionEnabled,hidden,alpha<0.01,也就是你一个view隐藏或什么了,还是可以作为接收者。3.调用次序是从 阅读全文

posted @ 2013-06-12 23:50 VicStudio 阅读(2808) 评论(1) 推荐(2)