Tag: cocoa touch

UIScrollView里面的UIScrollView

我有一个UIScrollView与另一个UIScrollView里面。 他们都水平滚动,并具有pagingEnabled = YES 。 假设我开始滚动内部滚动视图,并达到最右边的界限。 如果我继续滚动它,那么外面的scrollView开始移动。 我需要避免这一点。 内部观点应该以橡皮筋效应跳跃,外部应该留在原地。 希望这是明确的,但这里是一个草图: 我试着设置outerView.scrollEnabled = NO; 喜欢这个: – (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView { outerView.scrollEnabled = NO; } ,它的工作原理是我需要的,如果滚动innerView。 OuterView不再滚动。 但是如果我想再次滚动outerView,我必须将scrollEnabled设置回YES。 我试过在这里做: – (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView { outerView.scrollEnabled = YES; } ,但我得到了同样的问题:达到innerView outerView的最右边界滚动,而不是innerView跳跃与橡皮筋效应。 任何build议如何解决问题?

比较两个文本字段的文本

如何比较两个文本字段中的文本以查看它们是否相同,例如在“密码”和“确认密码”文本字段中? if (passwordField == passwordConfirmField) { //they are equal to each other } else { //they are not equal to each other }

使用与@“some string”的优点和缺点

我想比较以下简单的作业: … @property(nonatomic,retain) UITextField *textField; … self.textField.text = @"some string"; self.textField.text = [NSString stringWithString:@"some string"]; self.textField.text = [NSString stringWithFormat:@"some string"]; 其中textField是UITextField , text属性是NSString 。 当然,他们都工作。 我知道使用参数时最后两个的区别。 但是可以说我们只对这个用法感兴趣。 问题: 为了做这样的任务,为什么我不应该总是使用第一个? 比较后两者,这两者的编译和/或运行时间是否有区别? 而为什么我应该使用stringWithString:如果不是呢?

在iOS应用程序中,我应该如何或在哪里存储全局所需的对象实例?

我正在构build一个iOS应用程序。 大多数应用程序需要访问持久对象。 当应用程序通过应用程序委托加载时,该对象被实例化。 我遇到的问题是需要访问这个对象的许多视图控制器。 创build可从应用程序的任何位置访问的全局对象的最佳方式和最佳实践是什么? 例子将不胜感激。 非常感谢。

查看高度问题(续)

这是对我在这里(这仍然是未解决)的问题的继续: 链接 但是这可能有助于了解问题所在。 我创build了一个简单的testing项目('空应用程序'),并添加了一个视图控制器与XIB文件(checkbox:'用XIB文件的用户界面'选中)。 代码如下所示: – (void)viewDidLoad { [super viewDidLoad]; NSLog(@"didLoad: %@",NSStringFromCGRect(self.view.bounds)); // Do any additional setup after loading the view from its nib. } -(void) viewDidAppear:(BOOL)animated { NSLog(@"didAppear: %@",NSStringFromCGRect(self.view.bounds)); } 这是输出: 2013-07-26 17:05:28.502 testtest[5926:c07] didLoad: {{0, 0}, {320, 548}} 2013-07-26 17:05:28.506 testtest[5926:c07] didAppear: {{0, 0}, {320, 460}} 他们怎么不一样? (ps。我在6.1模拟器上testing)

应用程序加载和初始屏幕

我的应用程序下载相当多的数据,这需要几秒钟。 我的启animation面显示,然后消失,然后在加载第一个视图之前出现白色的空白屏幕几秒钟。 有没有办法保持启animation面出现? 在AppDelegate中创build一个视图并保持显示状态,直到所有的数据加载完成并且视图即将加载为止。

Obj-C:与@“string”

我见过有人做类似[NSString stringWithString:@"some string"] 。 为什么不只是做@"some string" ? 举个例子,看看facebook-ios-sdk 。 + [NSString stringWithString:] – 有什么意义? 是一个类似的问题,但没有答案地址[NSString stringWithString:@"some string"]与@"some string" 。

检查时间是否在两次iOS之间

我有两次说,上午8点40分和下午4点,我想要做的是,要检查当前时间是否在给定时间之间? 我已经试过这段代码,但它不工作:(你能帮我一下,我犯了什么错误? NSDateComponents *components = [[NSCalendar currentCalendar] components:NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit fromDate:[NSDate date]]; NSInteger currHr = [components hour]; NSInteger currtMin = [components minute]; NSString startTime = @"21:00"; NSString endTime = @"07:00"; NSArray *arr=[NSArray arrayWithObjects:startTime,endTime, nil]; int stHr = [[[[arr objectAtIndex:0] componentsSeparatedByString:@":"] objectAtIndex:0] intValue]; int stMin = [[[[arr objectAtIndex:0] componentsSeparatedByString:@":"] objectAtIndex:1] intValue]; int enHr = […]

在canInitWithRequest的YES响应之后,NSURLProtocol不会被要求加载

我正在注册一个NSURLProtocol的实现来做一些自定义处理某些URL请求(我通过设置它们的属性来标记这些请求)。 这些URL请求来自UIWebView的加载方法。 创buildUI Web视图(启动后第一次加载) 加载内容 破坏networking视图 创build一个新的Web视图(后续加载) 加载内容 我看到步骤2和步骤5之间的显着不同的行为。我的NSURLProtocol实现pipe理caching的数据,并被devise来处理请求。 如果我在请求中没有检测到我的属性,我会再次检查特定的URL(用于debugging)。 在任何情况下, canInitWithRequest将返回YES : 启动后首次加载: 2014-10-15 11:37:11.403 MYApp[5813:60b] MYURLProtocol canInitWithRequest: Matched property in request: <0x15ebbb40> https://example.com/ 2014-10-15 11:37:11.404 MYApp[5813:60b] MYURLProtocol canInitWithRequest: Matched property in request: <0x15dc8da0> https://example.com/ 2014-10-15 11:37:11.409 MYApp[5813:60b] MYURLProtocol canInitWithRequest: Matched property in request: <0x15ee5ef0> https://example.com/ 2014-10-15 11:37:11.409 MYApp[5813:60b] MYURLProtocol canInitWithRequest: Matched property in […]

NSUndoManager使用旋转手势来撤销UIImage旋转

如何使用NSUndoManager旋转UIImageView使用旋转手势? 这是我的代码轮换。 – (void)handleRotate:(UIRotationGestureRecognizer *)recognizer { if (recognizer.state == UIGestureRecognizerStateBegan) { prevRotation = 0.0; } float thisRotate = recognizer.rotation – prevRotation; prevRotation = recognizer.rotation; recognizer.view.transform = CGAffineTransformRotate(recognizer.view.transform, thisRotate); CGPoint lastpoint = point; }