2011-08-04 10 views
11

나는 UITableViewCell에서 그라디언트 배경을 만들기 위해 CAGradientLayer를 사용하기 위해 아래 튜토리얼을 따라 갔다. 이 튜토리얼 게다가iOS의 UITableViewCell에서 그라데이션 배경을 만드는 방법은 무엇입니까?

http://cocoawithlove.com/2009/08/adding-shadow-effects-to-uitableview.html

,이 주제의 다른 자원이 있습니까?

감사합니다.

+0

당신이이 질문을 표시하십시오 수 :

[button.layer insertSublayer:gradient atIndex:0]; 

대신을? –

답변

39

항상 훌륭한 Wanderlich는 UITableViewCells 변경에 대한 자습서를 작성하고 그라데이션을 포함합니다.

//include #import <QuartzCore/QuartzCore.h> in the header… 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 

if (cell == nil) { 
     cell = [[DayCalendarCellView alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; 
     CAGradientLayer *gradient = [CAGradientLayer layer]; 
     gradient.frame = cell.bounds; 
     gradient.colors = [NSArray arrayWithObjects:(id)[[UIColor whiteColor]CGColor], (id)[[UIColor redColor]CGColor], nil]; 
     [cell.layer addSublayer:gradient]; 
    }   
    return cell; 
} 

당신은 색상을 변경할 수 있지만, 이것은 당신에게 좋은 아이디어를 줄 것이다 ...

행운을 빕니다 :

http://www.raywenderlich.com/2033/core-graphics-101-lines-rectangles-and-gradients

짧은과 방법을 원하는 경우

, 여기에 일부 코드입니다!

+0

이 코드에는 오류가 있습니다. 색상은 NSArray에 추가 될 때 유형 ID로 형변환되어야합니다. 아래를 참조하십시오. [NSArray arrayWithObjects : (id) [UIColor whiteColor] .CGColor, (id) [UIColor redColor] .CGColor, nil]; 위대한 다른 작품보다. 좋은 답변 주셔서 감사합니다! – jmurphy

+0

당신 말이 맞아요. 미안합니다! –

+2

그라디언트로 그릴 수 있으므로 UITableViewCell의 다른 레이어/하위 뷰에서 필요한 경우이 방법을 사용하십시오. –

1

Peronally 나는 Photoshop이나 gimp에서 그라데이션 이미지를 만든 다음이를 배경으로 사용합니다. 세포가 예측 가능한 크기를 유지하는 한 잘 작동해야합니다.

+0

그게 내가 한 것입니다. –

+4

가변 높이의 그래디언트가 필요한 경우에는 작동하지 않습니다. 또한 프로그래밍 방식으로 동일한 효과를 얻을 수 있다면 .ipa가 더 작아 지므로 그렇게하는 것이 좋습니다. 그냥 2 센트 – ArtSabintsev

2

X 높이의 1 픽셀 이미지를 만듭니다.

cellForRowAtIndexPath 메서드의 셀에 UIView 개체를 추가합니다.

colorWithPatterImage UIView setbackgroundcolor 메서드의 uicolor 메서드입니다.

+0

이렇게하는 것이 좋습니다.'[UIColor colorWithPatternImage :]'를 사용하십시오 –

2

따르 야곱의 대답하고있는 UIButton 또는보기 사용의 배경색을 설정하려면 : 대답으로

[button.layer addSublayer:gradient]; 
+0

또한 배경색을 투명하게 설정해야했습니다. – testing

관련 문제