2012-10-12 4 views
0

내가 그라데이션 버튼을 만들려면 다음 코드가 있습니다아이폰 그라데이션 버튼 문제

CAGradientLayer *gradientLayer = [CAGradientLayer layer]; 
gradientLayer.frame = btnSignUp.layer.bounds; 

gradientLayer.colors = [NSArray arrayWithObjects: 
         (id)[UIColor colorWithWhite:1.0f alpha:0.1f].CGColor, 
         (id)[UIColor colorWithWhite:0.4f alpha:0.5f].CGColor, 
         nil]; 

gradientLayer.cornerRadius = btnSignUp.layer.cornerRadius; 

[btnSignUp.layer addSublayer:gradientLayer]; 

그러나, 하단 모서리가 너무 이상 칠 반올림합니다. 나는 이것이 왜 일어나는지를 알 수 없다. 어떤 아이디어? http://imageshack.us/a/img546/509/btnw.png

+0

당신이 btnSignUp.layer.cornerRadius 0이 아닌 값이되는지 확인 했이다 싶은 생각하십니까? – rmaddy

+0

그게 전부 였어. 고마워, rmaddy. – Darko

답변

0

당신이 아이폰 OS 5.0을 대상으로하는 경우 또는 그 이상, 당신은 그라데이션의 PNG 파일을 만들려면 대신 층으로 쌓여있는 버튼의 배경 채우기 위해 스트레칭 수 있습니다 여기에

는 사진입니다. PNG를 사용하면 성능에 미치는 영향이 더 클 것 같습니다.

그래서 같은 :

static UIEdgeInsets insets = {15, 15, 15, 15}; (or whatever your insets are) 
UIImage* image = [[UIImage imageNamed:@"myImage"] resizableImageWithCapInsets:insets]; 
[_button setBackgroundImage:image forState:UIControlStateNormal]; 
0

난 당신이 _button.layer.masksToBounds = YES;