Questions tagged «cocoa-touch»

驱动iOS应用程序的Cocoa Touch框架共享在Mac上发现的许多成熟模式,但它们的构建特别着重于基于触摸的界面和优化。

5
MKMapView缩放和区域
我熟悉使用Google Maps Javascript API。最近,我开始为iPhone项目使用MapKit框架,但是我很难弄清楚缩放和设置地图上的区域。 在Google Maps API中,我曾经使用整数缩放级别(例如8、9、10)以及简单的函数setZoom()。我在MapKit框架中看到的唯一等效方法是setRegion:animated。据我了解,我需要设置区域的跨度的纬度和经度“ delta”值以指定缩放级别。但是我真的不知道这些值代表什么(我阅读了文档)。 当我使用MKMapView委托并在regionDidChange委托方法中跟踪跨度值时,结果似乎并不相互关联。当我缩小并看到span delta值按照文档中的指定增加时,可以。但是突然间,我拖动地图时没有缩放,增量值变为0.0。 有人可以解释一下这些跨度和增量的参考点是什么吗?还是有任何算法可以将整数缩放级别(如9)转换为这些增量值? 作为一个额外的问题,有什么方法可以在MKMapView上指定最小最大缩放级别:) 谢谢

4
在将一个字符串与另一个变量进行比较之前,是否有必要为其分配一个字符串?
我想将an的值NSString与字符串“ Wrong”进行比较。这是我的代码: NSString *wrongTxt = [[NSString alloc] initWithFormat:@"Wrong"]; if( [statusString isEqualToString:wrongTxt] ){ doSomething; } 我真的必须为“错误”创建NSString吗? 另外,可我一个的值进行比较UILabel的text一个字符串没有标签值分配给字符串?

12
NSTimeInterval到HH:mm:ss?
如果我的NSTimeInterval设置为200.0,是否有办法将其转换为00:03:20,我想我可以用它初始化NSDate,然后使用HH:mm:ss使用NSDateFormatter。我的问题是,有没有一种快速的方法来执行此操作,或者我必须自己分解并使用数字[NSString stringWithFormat: %02d:%02d:%02d, myHour, myMin, mySec]?

10
iPhone应用程序是否有现成的日历控件?[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow的主题。 4年前关闭。 改善这个问题 我正在为iPhone开发一个应用程序,它将显示即将发生的事件和过去的事件。我选择了一个列表视图,但是后来我意识到,日历(就像内置日历应用程序的“月”视图中显示的日历一样)将是最佳的选择。 但是,《 iPhone人机界面指南》仅提到了日期选择器,而不是日历,因此我认为没有类似的东西可用。真的吗?如果是这样,是否有人知道可以使用的第三方控件?(我可以自己写一个,但我宁愿准备一些东西,因为这是对原始项目计划的偏离)。

5
iCloud基础知识和代码示例
从目前的情况来看,这个问题不适合我们的问答形式。我们希望答案能得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 9年前关闭。 作为一个初学者,我正在为iCloud奋斗。有一些示例,但是它们通常都非常详细(在开发人员论坛上,有一个针对iCloud和CoreData的示例非常庞大)。在苹果的文档都OK,但我仍然无法看到大局。因此,请允许我,其中一些问题是非常基本的,但可能很容易回答。 上下文:我有一个非常简单的iCloud应用程序正在运行(下面是完整的示例代码)。仅向用户显示一个UITextView,并且他/她的输入保存在一个名为text.txt的文件中。 txt文件被推送到云中,并可供所有设备使用。完美运行,但是: 主要问题:不使用iCloud的用户呢? 启动应用程序时(请参见下面的代码),我会检查用户是否启用了iCloud。如果启用了iCloud,则一切正常。该应用程序继续运行,并在云中查找text.txt。如果找到,它将加载它并显示给用户。如果在云中找不到text.txt,它将仅创建一个新的text.txt并将其显示给用户。 如果用户未启用iCloud,则不会发生任何事情。如何使非iCloud用户仍然可以使用我的文本应用程序?还是我只是忽略它们?我是否需要为非iCloud用户编写单独的功能?即我仅从documents文件夹中加载text.txt的函数? 苹果写道: 以与对待应用程序沙箱中所有其他文件相同的方式对待iCloud中的文件。 但是,就我而言,再也没有“普通”应用程序沙箱了。在云中。还是我总是先从磁盘上加载text.txt,然后与iCloud检查是否还有最新信息? 相关问题:文件结构-沙箱与云 也许我的主要问题是对iCloud应该如何工作的根本误解。创建UIDocument的新实例时,我将不得不覆盖两个方法。首先- (BOOL)loadFromContents:(id)contents ofType:(NSString *)typeName error:(NSError **)outError从云-(id)contentsForType:(NSString *)typeName error:(NSError **)outError中获取文件,然后将文件添加到云中。 我是否必须合并单独的功能,这些功能也会将text.txt的本地副本保存到我的沙箱中?这对非iCloud用户有效吗?据我了解,iCloud会自动保存text.txt的本地副本。因此,我不需要将任何内容保存到应用程序的“旧”沙箱中(即,它曾经在iCloud之前的旧年代使用)。目前,我的沙箱完全是空的,但我不知道这是否正确。我是否应该在其中保留另一个text.txt副本?感觉就像混乱的数据结构...因为云中有一个text.txt,设备上的iCloud沙箱中有一个text.txt(即使我离线也可以使用),而旧的沙箱中的第三个则是。我的应用程式... 我的代码:一个简单的iCloud示例代码 这大致基于我在开发人员论坛和WWDC会话视频中找到的示例。我将其剥离到最低限度。我不确定我的MVC结构是否良好。该模型位于AppDelegate中,并不理想。欢迎提出任何改善建议。 编辑:我试图提取主要问题并将其发布[此处]。4 概述: 最重要的一点是从云中加载text.txt: // AppDelegate.h // iCloudText #import <UIKit/UIKit.h> @class ViewController; @class MyTextDocument; @interface AppDelegate : UIResponder <UIApplicationDelegate> { NSMetadataQuery *_query; } @property (strong, nonatomic) UIWindow …

9
如何在iOS中的小键盘上添加“完成”按钮
因此,小键盘默认情况下不带有“完成”或“下一步”按钮,因此我想添加一个。在iOS 6及以下版本中,有一些技巧可以在键盘上添加按钮,但它们似乎在iOS 7中不起作用。 首先我订阅显示通知的键盘 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil]; 然后,当键盘显示时,我尝试添加一个按钮: - (void)keyboardWillShow:(NSNotification *)note { // create custom button UIButton *doneButton = [UIButton buttonWithType:UIButtonTypeSystem]; doneButton.frame = CGRectMake(0, 50, 106, 53); doneButton.adjustsImageWhenHighlighted = NO; [doneButton setTitle:@"Done" forState:UIControlStateNormal]; [doneButton addTarget:self action:@selector(dismissKeyboard) forControlEvents:UIControlEventTouchUpInside]; // locate keyboard view UIWindow* tempWindow = [[[UIApplication sharedApplication] windows] …


4
引用AppDelegate实例变量
我有一个基于基于导航的应用程序模板的项目。在AppDelegate中是方法-applicationDidFinishLoading:和-applicationWillTerminate:。在这些方法中,我正在加载和保存应用程序数据,并将其存储在一个实例变量中(它实际上是一个对象图)。 当应用程序加载时,它将加载MainWindow.xib,它具有一个NavigationConroller,而后者又具有一个RootViewController。RootViewControllernibName属性指向RootView(我的实际控制器类)。 在我的课堂上,我希望引用在-applicationDidFinishLoading:方法中创建的对象,以便获得对它的引用。 谁能告诉我该怎么做?我知道如何在我以编程方式创建的对象之间进行引用,但是鉴于中间步骤是在NIB文件中完成的,因此我似乎无法弄清楚如何回溯。


16
如何在一个操作中从UINavigationController弹出视图并将其替换为另一个视图?
我有一个应用程序,需要从UINavigationController的堆栈中删除一个视图,并用另一个视图替换它。情况是,第一个视图创建了一个可编辑的项目,然后用该项目的编辑器替换了自己。当我在第一个视图中执行明显的解决方案时: MyEditViewController *mevc = [[MYEditViewController alloc] initWithGizmo: gizmo]; [self retain]; [self.navigationController popViewControllerAnimated: NO]; [self.navigationController pushViewController: mevc animated: YES]; [self release]; 我得到非常奇怪的行为。通常会出现编辑器视图,但是如果我尝试使用导航栏上的“后退”按钮,则会得到额外的屏幕,其中一些是空白的,有些则被弄乱了。标题也变得随机。就像导航堆栈已完全用软管固定。 有什么更好的方法来解决这个问题? 谢谢,马特

10
在iOS8中无法获取正确的键盘高度值
我正在使用此代码来确定键盘的大小: - (void)keyboardWillChange:(NSNotification *)notification { NSDictionary* keyboardInfo = [notification userInfo]; NSValue* keyboardFrameBegin = [keyboardInfo valueForKey:UIKeyboardFrameBeginUserInfoKey]; CGRect keyboardFrameBeginRect = [keyboardFrameBegin CGRectValue]; } 我正在模拟器中运行它。 问题是因为iOS 8不会给出正确的值,如果键盘建议是向上的,或者如果我按下它们,则会得到不同的(不正确的)值。 如何获得包括键盘建议在内的键盘的确切尺寸?

11
获取时间戳格式的当前NSDate
我有一个获取当前时间并将其设置为字符串的基本方法。但是,如何获取自1970年以来的UNIX时间戳格式的当前日期和时间的格式? 这是我的代码: NSDate *currentTime = [NSDate date]; NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"hh-mm"]; NSString *resultString = [dateFormatter stringFromDate: currentTime]; 是否可以NSDateFormatter将'resultString'更改为时间戳?


8
如何找到两个CG点之间的距离?
当我们在UIScrollView中用两根手指进行多点触摸时,会得到两个CG点。我想找到它们之间的距离。然后,当我们再次捏(内部或外部)时,我们将再次获得两分。然后,在再次找到这两个点之间的距离之后,我想确定是捏还是捏。如果我捏了一下,新距离肯定会更短,反之亦然。 但是不知道如何找到2个点之间的距离的准确测量值以进行比较吗?有人对此有想法吗?


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.