Cambia dinámicamente el text de CATextLayer

He estado golpeando mi cabeza contra una panetworking tratando de resolver este problema. Agregué un CATextLayer a un CALayer y, después de un par de operaciones, quiero cambiar el text del CATextLayer a algo diferente. ¿Hay una manera simple de hacer eso? A continuación, tengo un código a continuación que no parece funcionar.

self.searchingForTextLayer = [CATextLayer layer]; self.searchingForTextLayer.bounds = CGRectMake(0.0f, 0.0f, 100.0f, 30.0f); self.searchingForTextLayer.string = @"Searching for.."; self.searchingForTextLayer.fontSize = 12; //TextLayer.font = [UIFont boldSystemFontOfSize:18].fontName; self.searchingForTextLayer.backgroundColor = [UIColor clearColor].CGColor; self.searchingForTextLayer.position = CGPointMake(80.0, 40.0f); self.searchingForTextLayer.wrapped = NO; [self.captureVideoPreviewLayer addSublayer:self.searchingForTextLayer]; 

y luego lo llamo en un método

 self.searchingForTextLayer.string = @"Search complete"; 

pero llamar a esto no cambia el text en la pantalla.

¡Cualquier ayuda sería genial!

Asegúrese de cambiar la propiedad de cadena en el hilo principal y deshabilite las animaciones. Esto funcionó para mí (Swift):

  dispatch_async(dispatch_get_main_queue(), { () -> Void in CATransaction.begin() CATransaction.setDisableActions(true) self.textLayer?.string = text CATransaction.commit() })