当键盘存在时如何使UITextView向上移动

如何在开始input某个值时向上和向下移动UITextView 。 像在TextField中一样,我们使用它的委托方法。 在UITextView的情况下该怎么办?

在键盘上更改完成button的文本

我知道这个主题已经有了一个问题,但是我认为可以改变键盘的完成button的文本,因为我使用的许多应用程序都是法文的,而完成button的文本是“accéder”。 但是我不知道该怎么做?

如何支持iOS 7和8的NSCalendar?

iOS 8为旧方法引入了一些新的值。 例如,创build一个日历就像这样: NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; 现在,日历标识已经改变了,我应​​该像这样创build对象: NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian]; 事情是,编译器警告我,只有在NSGregorianCalendar不推荐使用的第一种情况。 但是,编译器并没有警告我关于iOS 7的NSCalendarIdentifierGregorian兼容性。 这是否意味着NSCalendarIdentifierGregorian在iOS 7下工作? 如果没有,根据操作系统的不同,使用日历标识符创build日历的最佳方法是什么? 每次检查操作系统版本似乎都很乏味。 谢谢。

如何停止viewForAnnotation方法覆盖iOS中的默认用户位置蓝色信标

现在,我使用注释填充地图视图,并显示用户的当前位置。 使用viewForAnnotation方法,它会覆盖所有注释与默认的红色别针,但我想返回其他注释的意见,但保持用户位置默认的蓝色信标。 有没有办法做到这一点,或者我必须创build一个新的注释视图,并返回正确的取决于注释? 现在我有这样的东西: – (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation { if (annotation.coordinate == locationManager.location.coordinate) { return nil; }else { MKAnnotationView *annotationView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"Beacon"]; // Button UIButton *button = [UIButton buttonWithType:UIButtonTypeDetailDisclosure]; button.frame = CGRectMake(0, 0, 23, 23); annotationView.rightCalloutAccessoryView = button; annotationView.canShowCallout = YES; return annotationView; } } 但是我不能将两者等同起来,因为我无法从注解参数中获取坐标属性。 有人知道这个解决scheme吗?

目标C的类build模备选scheme

由于XCode 4中的类模型工具已经被淘汰,您还有什么其他select可以推荐用于Objective C的UMLbuild模工具?

Deinit没有调用UIViewController,但是Dealloc是

看起来像dealloc的Swift相当于deinit 。 但是,当您尝试在UIViewController上定义方法时,它不会像您所期望的那样运行… build立 使用Xcode 7.0在Swift或Objective-C中创build一个新的Single View项目。 在用故事板创build的视图控制器上添加一个“解除”button(我将这个视图控制器称为VC2;它的类是ViewController)。 添加一个新的视图控制器,并将其设置为初始视图控制器(VC1,类为零)。 向VC1添加“呈现”button,将“呈现模式”延续到VC2。 在VC2的代码中,在deinit (Swift)或dealloc (Objective-C)中放置一个断点。 在VC2中,使“解除”button的操作执行以下操作: // Swift: presentingViewController?.dismissViewControllerAnimated(true, completion: nil) // Objective-C: [self.presentingViewController dismissViewControllerAnimated:YES completion:nil]; 运行该应用程序,并点击两个button,首先提出VC2,然后解雇它。 注意在Objective-C中 , dealloc断点是如何被命中的 。 另一方面,在Swift中 , deinit断点永远不会被deinit 。 为什么deinit从不被调用? 这是一个错误还是devise? 如果这是devise,那么当不再需要视图控制器时,我应该在哪里放置清理代码以释放资源? (它不能在viewDidUnload因为这个方法已经被弃用了,它不能在viewDidDisappear因为别的东西可能持有对它的引用,并且最终会再次显示它。) 注意:如果你试图在Swift中定义一个dealloc方法,你会得到下面的错误: 使用Objective-Cselect器“dealloc”的方法“dealloc()”与具有相同Objective-Cselect器的deinitializer冲突。 如果你有从一个Objective-C控制器inheritance的Swift视图控制器,并且你在Objective-C dealloc方法中放置一个断点,你将得到与上面定义的相同的错误行为: deinit不会被调用,但dealloc将调用。 如果您尝试使用Allocations查看内存中类的实例数,则两个版本都显示相同的内容: # Persistent始终为1,并且每次显示第二个视图控制器时# Transient增加。 鉴于上述设置,应该没有强大的参考周期坚持视图控制器。

将CLLocationCoordinate2D放入Swift的CLLocation中

我有一个方法,我想调用,但是当我回到地图的中心,它是在CLLocationCoordinate2Dtypes。 如何将CLLocationCoordinate2D的结果放入CLLocation中?

尽pipeprepareToPlay()在Swift中AVAudioPlayer产生滞后

播放一个非常短的声音(〜0.5s)会在Swift中编写的SpriteKit iOS游戏中产生一个呃逆(就像一个延迟)。 在其他问题中,我读了我应该prepareToPlay()声音,我做了。 我甚至用一个variables( soundReady )来检查在播放之前是否准备好声音。 每当播放完成时,我也会重新准备声音( audioPlayerDidFinishPlaying() )。 以下是代码的相关部分: class GameScene: SKScene, AVAudioPlayerDelegate { var splashSound = NSURL() var audioPlayer = AVAudioPlayer() var soundReady = false override func didMoveToView(view: SKView) { let path = NSBundle.mainBundle().pathForResource("plopSound", ofType: "m4a") splashSound = NSURL(fileURLWithPath: path) audioPlayer = AVAudioPlayer(contentsOfURL: splashSound, error: nil) audioPlayer.delegate = self soundReady = audioPlayer.prepareToPlay() } […]

如何修改自定义GCD队列的优先级?

我创build了这样的GCD队列: dispatch_queue_t q = dispatch_queue_create("com.testcompany.myqueue", NULL); 当我将任务派送到该队列时,比在主线程上执行任务要慢。 dispatch_async(q, ^(void) { [self performHeavyCalculationAndUpdateUI]; }); 我怀疑这个队列的默认优先级很低。 我怎样才能改变这个队列的优先级? 还是有什么我必须做的?

Objective-C协议和类别可以被inheritance吗?

我对Objective-C协议和类别的一些概念有些困惑。 Objective-C中的子类可以inheritance协议和类别吗?