2013-10-26 79 views
2

我正在製作一個視頻應用程序,該應用程序使用.mov資源作爲背景和CATextLayer來創建信用剪輯。該代碼適用於iOS 5和iOS 6,但不適用於iOS 7 - 即:生成剪輯但不顯示文本。CATextLayer在iOS7視頻中不可見

我試過使用此問題的答案中的代碼(How can I add overlay text on a video, then re-encode it?),但CATextLayer中的文本仍然不顯示。

爲什麼iOS 7的行爲不同,我如何才能使它工作?

+0

我試圖解決它2天,我無法得到它的工作 – MAMN84

+0

它只是工作,如果我將前景色設置爲黃色,將背景色設置爲白色。奇怪的!!!! – MAMN84

+1

@Rob VS,足夠有趣的人通常會回答問題回答者,但我經常非常感謝提問者。謝謝你救我30分鐘的頭部劃傷! – simplexity

回答

8

後2天這個問題

CATextLayer *text = [CATextLayer layer]; 
text.string = @"Your Text"; 
text.frame = CGRectMake(0, 0, 320, 50); 
CGFontRef font = CGFontCreateWithFontName((CFStringRef)@"HelveticaNeue-UltraLight"); 
text.font = font; 
text.fontSize = 20; 
text.foregroundColor = [UIColor whiteColor].CGColor; 
[text display]; 
[aLayer addSublayer:text]; 
[aLayer display]; 

祕密呼喚[CALayer的顯示]方法

+0

廢話! [CALayer顯示]和[CATextLayer顯示]做了訣竅。我剛剛轉換我的代碼以模仿Apple的AVSimpleEditoriOS示例代碼,但它仍然不起作用(僅僅是我添加標題的.mov文件的唯一區別)。順便說一句,蘋果的代碼不稱爲'顯示'。感謝老兄! –

+1

我會建議使用displayIfNeeded而不是顯示,因爲顯示不應該直接調用。 – adriaan

+0

謝謝。這太奇妙地解決了我過了很久我的頭撞在我的桌子上。 – crgt