2012-02-11 3 views
2

:페이스 북 사용 three20의 TTButtonBar를 복제, 나는 페이스 북이 여기에 자신의 응용 프로그램에서 사용하는 버튼 그리드 바 복제 찾고 있던 아이폰 OS

enter image description here

왼쪽 버튼이 밀리지 않은 상태입니다 오른쪽을 누르면.

'푸시'버튼 상태를 복제하는 데 문제가 있습니다. 누구든지 도와 줄 수 있습니까? 여기에 지금까지있어 무엇 :

enter image description here

나는 그것의 대부분의 꽤 만족 스럽습니다. 버튼의 크기를 브러시로 처리해야하지만 그건 사소한 일입니다. 내 도구 모음에서 왼쪽 버튼을 누른 것으로 가정하고 오른쪽되지 않습니다. 분명히 페이스 북이 구현 한 상단에 그 그림자가 빠졌습니다. 어떻게 이것을 복제 할 수 있습니까? 나는 TTInnerShadowStyle을 사용하려고 생각하고 있었지만 올바르게 할 수 없었습니다. 각 버튼의 스타일을 생성하는 코드는 다음과 같습니다.

UIColor *gradientFill1 = RGBCOLOR(249, 250, 252),*gradientFill2 = RGBCOLOR(225, 228, 235); 

if (state != UIControlStateNormal) { 
    gradientFill1 = RGBCOLOR(233, 234, 237); 
    gradientFill2 = RGBCOLOR(214, 217, 223); 
} 

TTStyle *style= [TTShapeStyle styleWithShape:[TTRoundedRectangleShape shapeWithRadius:3] next: 
     [TTInsetStyle styleWithInset:UIEdgeInsetsMake(1, 0, 1, 0) next: 
     [TTLinearGradientBorderStyle styleWithColor1:RGBCOLOR(140, 144, 150) 
               color2:RGBCOLOR(175, 179, 186) width:0.5 next: 
     [TTLinearGradientBorderStyle styleWithColor1:RGBCOLOR(184, 186, 192) 
               color2:RGBCOLOR(208, 212, 218) width:0.5 next: 
      [TTLinearGradientFillStyle styleWithColor1:gradientFill1 
               color2:gradientFill2 next: 
      [TTShadowStyle styleWithColor:RGBACOLOR(253,254,254,1.0) blur:0 
            offset:CGSizeMake(0, 1) next: 
       [TTImageStyle styleWithImageURL:nil defaultImage:nil 
           contentMode:UIViewContentModeScaleToFill 
             size:CGSizeZero next: 
       [TTTextStyle styleWithFont:[UIFont boldSystemFontOfSize:12.0f] 
           color:RGBCOLOR(81, 91, 120) 
          shadowColor:nil 
         shadowOffset:CGSizeMake(0, 0) next:nil]]]]]]]]; 


return style; 

어떤 도움을 주시면 감사하겠습니다. 감사!

답변

1

사실 TTInnerShadowStyle을 추가하면 코드가 약간 이상하게 렌더링됩니다. 그러나 그것은 이중 국경 스타일에 의한 것 같습니다.

채우기 후에 내부 그림자를 삽입 한 다음 두 그라디언트 테두리를 움직여 내부 그림자를 숨기면 정확하게 예상 한 것처럼 보입니다. 내부의 밝은 테두리가 잘못 표시됩니다.

Tussatalog의 "Chiseled 단추"와 "내부 그림자"의 조합을 사용하는 것이 좋습니다.

[TTShapeStyle styleWithShape:[TTRoundedRectangleShape shapeWithRadius:3] next: 
[TTShadowStyle styleWithColor:RGBACOLOR(255,255,255,0.9) blur:1 
         offset:CGSizeMake(0, 1) next: 
[TTLinearGradientFillStyle styleWithColor1:gradientFill1 
          color2:gradientFill2 next: 
[TTInnerShadowStyle styleWithColor:RGBACOLOR(0,0,0,0.7) blur:7 
          offset:CGSizeMake(0, 0) next: 
[TTSolidBorderStyle styleWithColor:black width:1 next: 
[TTImageStyle styleWithImageURL:nil defaultImage:nil 
        contentMode:UIViewContentModeScaleToFill 
          size:CGSizeZero next:      
[TTTextStyle styleWithFont:[UIFont boldSystemFontOfSize:12.0f] 
        color:RGBCOLOR(81, 91, 120) 
       shadowColor:nil 
       shadowOffset:CGSizeMake(0, 0) next:nil]]]]]]] 

보통 상태의 경우 내부 그림자 색을 투명하게 설정하거나 조건부로 내부 그림자를 완전히 피하십시오.

0

직접 할 수있는 일은 CoreGraphics를 사용하면서 내면의 그림자 효과를 구현하는 것입니다. 이 S.O. page을 살펴보십시오.

+0

감사합니다. 나는 여전히'TTButtonBar'를 사용하면서 필요한 것보다 더 많은 코드를 추가 할 필요가 없도록 할 수있는 방법을 찾고있었습니다. 그게 내 함정 이었는지 궁금하다. – ecbtln