Tag: objective c

UIKeyboardBoundsUserInfoKey已弃用,请改用什么?

我正在使用3.2 sdk的iPad应用程序。 我正在处理获得键盘大小,以防止我的文本字段隐藏在它后面。 我在Xcode中得到一个警告 – > UIKeyboardBoundsUserInfoKey被弃用,我应该使用什么,而不是得到这个警告?

iOS6:supportedInterfaceOrientations不起作用(被调用但界面仍在旋转)

在我的应用程序中,我有多个视图,一些视图需要支持纵向和横向,而其他视图只需要支持纵向。 因此,在项目总结中,我select了所有的方向。 下面的代码工作在iOS 6之前的给定视图控制器上禁用横向模式: – (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { // Return YES for supported orientations return (interfaceOrientation == UIInterfaceOrientationPortrait); } 由于shouldAutorotateToInterfaceOrientation已被弃用在iOS6我已经取代了上述: -(NSUInteger)supportedInterfaceOrientations{ return UIInterfaceOrientationMask.Portrait; } 当视图出现时(我可以设置一个断点来确保这一点),这个方法被正确调用,但是无论我只是为了肖像模式返回蒙版,界面仍然旋转到横向模式。 我究竟做错了什么? 目前看来,目前不可能构build一个每个视图有不同定位要求的应用程序。 似乎只是坚持项目总结中指定的方向。

调用主线程上的方法?

首先,我正在为iPhone编写代码。 我需要能够调用主线程上的方法,而不使用performSelectorOnMainThread 。 我不想使用performSelectorOnMainThread原因是,当我试图为unit testing创​​build一个模拟时,它会导致问题。 [self performSelectorOnMainThread:@Selector(doSomething) withObject:nil]; 问题是,我的模拟知道如何调用doSomething但它不知道如何调用performSelectorOnMainThread 。 那么任何解决scheme

iOS 7和button和边框

我正在使我的应用程序准备好iOS7。 我做了转换,并与用户合作。 应用程序中的button看起来不像button。 看起来很平坦。 有没有办法把边框放在一边,或者像button一样放置呢?

Xcode成功构build我的目标,但不运行该产品

我已经在Mac OS X Lion上安装了Xcode 4.2.1。 当我创build一个新的(Mac OS X的cocoa)项目,我点击“运行”,Xcode说构build成功,但不运行该项目。 没有错误,但没有应用程序。 当我在另一台Mac上完成同样的事情(但安装了OS X Snow Leopard和Xcode 4.0.1)时,所创build的应用程序开始在扩展坞中popup,并显示一个空的窗口,就像我所期望的那样。 当我查看控制台时,似乎没有什么奇怪的事情发生。 我尝试重新安装Xcode,删除与Xcode有关的所有东西,但仍然没有运气。 任何人有一个想法可能是什么问题? (我尝试运行一个曾经工作的现有项目,但是也没有显示任何东西)

通过点击状态栏滚动到UITableView的顶部

我知道有很多代码可以将tableview滚动到顶部,但是我想在顶部状态栏被点击的时候这样做,就像在苹果的原生应用程序中一样。 这可能吗?

如何更改标签栏上不活动的图标/文字颜色?

如何在iOS 7标签栏上更改不活动的图标/文字颜色? 灰色的那个。

iOS 5:对UIA外观好奇

在2011年的技术演讲中,我看到了关于新的UIAppearance 协议的演讲。 那里还没有很多文件。 我将很快总结我记得我的问题来自哪里: 关于UIAppearance : 到目前为止,您必须自定义所有应用视图控制器中的每个导航栏(工具栏等)属性。 使用新的外观属性,您可以在应用程序中的所有导航栏中只使用一个位置。 例如:如果你想定制你的导航栏背景图像,你可以这样做: [[UINavigationBar appearance] setBackgroundImage: [UIImage imageNamed:@"MyImageName"] forBarMetrics:UIBarMetricsDefault]; 这将在您的应用程序中设置所有导航栏的背景图像。 通过barMetrics您可以指定是否要在横向模式下使用图像。 如果要指定仅在某些视图控制器中应用的外观,则文档中还有一个方法通过指定对象的位置来控制该外观: [[UIBarButtonItem appearanceWhenContainedIn: [ABPeoplePickerNavigationController class], nil] setTintColor:myNavBarColor]; 另外值得一提的是,如果你有单一的自定义实例,与你的外观设置不同,这些实例不会受到外观代理的影响。 一些问题: a)如何知道类的哪些属性与外观属性一起工作? 例如,因为UITableView符合UIAppearance协议,所以我想我可以做类似的事情 [[UITableView appearance] setBackgroundColor:mytableViewColor]; 操纵我所有桌子的背景颜色,但是我不能! b)是否有可以用外观属性操作的所有类的列表? c)在什么时候调用外观定制? 我希望在运行时对外观属性进行更改,但不幸的是,这些更改没有发生。

在主线程上发布NSNotification

我发现下面的代码片断允许NSNotification从任何后台线程发布到主线程上。 我想知道这是否是一个安全和可接受的做法? dispatch_async(dispatch_get_main_queue(),^{ [[NSNotificationCenter defaultCenter] postNotificationName:@"ImageRetrieved" object:nil userInfo:imageDict]; });

bool参数在animateWithDuration中做了什么:animation:完成:

我提到DOC ,它说: 完成 …这个块没有返回值,只接受一个布尔参数,指出在调用完成处理程序之前animation是否真的完成了。 … 但是我发现无论你使用bool参数还是不行, completion:块总是在animations:块之后执行。 就像下面显示的两个简单的基于块的animation代码片段一样,两者都是一样的。 [UIView animateWithDuration:0.3f delay:0.0f options:UIViewAnimationCurveEaseInOut animations:^{ [myView setAlpha:0.0f]; } completion:^(BOOL finished) { [myView removeFromSuperview]; }]; 和 [UIView animateWithDuration:0.3f delay:0.0f options:UIViewAnimationCurveEaseInOut animations:^{ [myView setAlpha:0.0f]; } completion:^(BOOL finished) { if (finished) [myView removeFromSuperview]; }]; 而且我发现大多数人(包括我)都使用第一个(甚至是苹果官方文档的例子)。 所以, 这里完全使用的参数是什么? 或者会有什么情况会被使用?