2017-11-24 2 views
0

iOS의 NavigationBar에 그라디언트를 추가하는 방법에 대해 많이 연구했지만 필요한 것을 보여주지 못했습니다. 나는 TOP에 WHITE가 있고 BOTTOM에는 CLEAR가있는 2 색 그라디언트가 필요합니다. 이 같은 : enter image description here내비게이션 막대에 그라디언트를 추가하는 방법 - iOS

CAGradientLayer 또한 CRGradientNavigationBar, 를 사용하여 시도하지만 항상 시도 모든 TOP에 화이트를 보여줍니다하지만 난 CLEAR에 바닥 색상을 설정할 때, 그것은 이상한 검은 색 반투명 ​​색상을 보여줍니다.

위의 그림과 비슷한 NavigationBar를 달성하는 방법은 무엇입니까?

감사합니다.

답변

1

알 수 있습니다. this 링크. 사실 clearColor 그래서 대신

[UIColor colorWithWhite:1 alpha:0]

를 사용하고이 일을 할 것, 0의 알파와 블랙 색상 채널이있다! 감사!

+0

다른 사람들에게 도움이 될 대답을 받아들입니다. – Vinodh

1

그라디언트 레이어를 만들고 탐색 모음의 배경으로 추가하십시오.

CAGradientLayer *gradient = [CAGradientLayer layer]; 

gradient.frame = self.navigationController.navigationBar.bounds; 

gradient.colors = [NSArray arrayWithObjects:(id)[[UIColor whiteColor] CGColor], (id)[[UIColor blackColor] CGColor], nil]; 

[self.navigationController.navigationBar setBackgroundImage:[self imageFromLayer:gradient] forBarMetrics:UIBarMetricsDefault]; 

레이어에서 이미지를 만듭니다.

(UIImage *)imageFromLayer:(CALayer *)layer 
{ 
    UIGraphicsBeginImageContext([layer frame].size); 

    [layer renderInContext:UIGraphicsGetCurrentContext()]; 
    UIImage *outputImage = UIGraphicsGetImageFromCurrentImageContext(); 

    UIGraphicsEndImageContext(); 

    return outputImage; 
} 

한가지 더, GitHub의에서 하나의 라이브러리 사용할 수 있습니다 : CRGradientNavigationBar하기이 라이브러리를 사용할 수 있습니다.

+0

이미 두 가지 작업을 모두 수행했습니다. CRGradientNavigationBar , 둘 다 결국 반투명 검정색을 보이게됩니다. – hyd00

0

상단 구속 -70으로 화면 상단에 UIView를 만들고 그 안에 크기가있는 CAGradientLayer를 추가 할 수 있습니다. 다음 UIImage() // 빈 이미지를 추가하여 투명하게 탐색 모음을 백그라운드로 만듭니다. 이렇게하면 백그라운드에서 CAGradientLayer 등급의 UIView가 표시됩니다.

관련 문제