2012-06-27 3 views
2

사용자가 뷰를 스 와이프 할 수 있음을 보여주기 위해 내 앱의 세로 막대에 "그립"을 만들려고합니다. 그저 이미지의 작은 버전을 사용하고 싶습니다.이 이미지에는 바의 나머지 부분에 대한 배경 인 그립과 1 px 위아래가 있습니다. 그래서 :외부 확장 및 내부가 동일하게 유지되는 크기 조정 가능 UIImage

ssss   ssss 
gggg becomes ssss 
ssss   gggg 
       ssss 
       ssss 

resizableImageWithCapInsets: 당신이 아이폰 OS가 바깥 쪽 가장자리를 조정하지 말 할 수 있지만 내부를 조정하고 외부와 스트레칭하지 그것을 말할 수있는 방법이 방법?

큰 뚜껑 삽입 함 지정을 시도했는데 UIEdgeInsetsMake(29.0f, 0.0f, 29.0f, 0.0f)과 그립이 이미지 프레임 상단에 오도록했으나 찾고있는 올바른 늘이기 동작이 아닙니다. 그립 부분을 프레임 중앙에 배치하면됩니다.

gripBar = [[UIImageView alloc] initWithImage:[[UIImage imageNamed:@"grip"] resizableImageWithCapInsets:UIEdgeInsetsMake(1.0f, 0.0f, 1.0f, 0.0f)]]; 
gripBar.frame = CGRectMake(0, 0, gripWidth, fullHeight); 
[view gripBar]; 

업데이트 : 작업 코드를 선택한 답변에 따라

@implementation GripBar 

- (id)init { 
    self = [super init]; 
    if (self) { 
     UIImageView *bar = [[UIImageView alloc] initWithImage:[[UIImage imageNamed:@"gripback"] resizableImageWithCapInsets:UIEdgeInsetsMake(0.0f, 0.0f, 1.0f, 0.0f)]]; 
     bar.autoresizingMask = UIViewAutoresizingFlexibleHeight; 
     [self addSubview:bar]; 

     UIImageView *grip = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"grip"]]; 
     grip.contentMode = UIViewContentModeCenter; 
     grip.autoresizingMask = UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin; 
     [self addSubview:grip]; 
    } 
    return self; 
} 

@end 

답변

1

가장 쉬운 방법 (이 전체 길이에 걸쳐 반복되는 그립 결과) 관심이있는 사람들을위한

전체 코드 이렇게하려면 배경이 늘어나거나 바둑판 식으로 배열 된 큰 막대보기의 그립 부분을 (작은 높이이지만 전체 너비의) 하위보기로 만드는 것이 좋습니다. 예를 들어, 자동 크기 조정 마스크를 사용하여 그립 부분을 큰보기 중앙에 유지할 수 있습니다.

관련 문제