剛剛移動到Xcode8和iOS10,爲其中一個應用程序提供對iOS10的支持。iOS10 +漸變停止工作
找出奇怪的問題,突然Gradient不工作。
我發現應用Storyboard(Xcode8中的Storyboard更改)後,更改漸變對視圖不可見。
的Xcode 7.3 - 梯度視圖 -
的Xcode 8 - 梯度視圖 -
而且,如果我取代故事板老故事板就說明梯度,所以有新的Storyboard出現問題。
有一個在代碼中沒有變化:
[view setOpaque:NO];
view.layer.cornerRadius = 45;
view.backgroundColor = [UIColor colorWithRed:23.0/255.0 green:29.0/255.0 blue:36.0/255.0 alpha:1.0];
CAGradientLayer *gradient = [CAGradientLayer layer];
gradient.frame = view.bounds;
UIColor *color1 = [UIColor colorWithRed:33.0/255.0 green:39.0/255.0 blue:46.0/255.0 alpha:1.0];
UIColor *color2 = [UIColor colorWithRed:23.0/255.0 green:29.0/255.0 blue:36.0/255.0 alpha:1.0];
UIColor *color3 = [UIColor colorWithRed:14.0/255.0 green:20.0/255.0 blue:26.0/255.0 alpha:1.0];
NSArray *colorsArray = @[(id)color1.CGColor, (id)color2.CGColor, (id)color3.CGColor];
gradient.colors = colorsArray;
[gradient setLocations:@[@0.0, @0.35]];
[view.layer insertSublayer:gradient atIndex:0];
讓我知道,如果任何一個想通了。
編輯:
我沒有創建新的故事板,我剛申請的變化低於Xcode8的建議
「另外,如果我用故事板替換Storyboard,它會顯示漸變」然後在故事板中有一些關鍵的區別。比較他們並找到它。或者使用舊的故事板。 (你爲什麼做一個新的?) – matt
你的代碼是確定的。在調試器下運行並檢查該視圖不是'nil',並且實際上應用漸變。將故事板中的背景設置爲不同的東西,如洋紅色。 – paiv
@matt - 如果應用程序是用Xcode 7.x創建的,並且我們將它打開到Xcode8,它會在舊的Storyboard中進行更改,如何有辦法「在Xcode 7.x中打開」。但它不會允許我以這種方式打開Storyboard,它總是將其更改爲新的。沒有創建新的Storyboard它是相同的 – Kampai