2012-05-22 2 views
0

Progress Bar사용자의 UIView 대신 줄

내가 설정에 이러한 점 대신 고체 바 진행률을 표시하는보기를 시도하고의 점 진전을 표시합니다. 이상적으로는 점들을 세로로 채우고 싶습니다 (아래에서 위로).

UIView 내부에 두 개의 UIImageView가 있습니다. 하나는 회색 배경이고 다른 하나는 마스크 된 전경입니다.

UIImage * bgImg = [UIImage imageNamed:@"prog_bg.png"]; 
    UIImageView * bgView = [[UIImageView alloc] initWithImage:bgImg]; 
    progImage = [UIImage imageNamed:@"prog.png"]; 
    maskRef = [UIImage imageNamed:@"prog_mask.png"].CGImage; 
    CGImageRef mask = CGImageMaskCreate(CGImageGetWidth(maskRef), 
             CGImageGetHeight(maskRef), 
             CGImageGetBitsPerComponent(maskRef), 
             CGImageGetBitsPerPixel(maskRef), 
             CGImageGetBytesPerRow(maskRef), 
             CGImageGetDataProvider(maskRef), NULL, false); 

    CGImageRef maskedImage = CGImageCreateWithMask([progImage CGImage], mask); 
    UIImage * img = [UIImage imageWithCGImage:maskedImage]; 
    imageView = [[UIImageView alloc] initWithImage:img]; 
    [progView addSubview:bgView]; 
    [progView addSubview:imageView]; 

이 코드는 SO question에 있습니다. 진행을 업데이트하는 대리자의 마스크 너비를 정의 할 수 없습니다.

답변

0

당신은 내가 이해가 안 미안 해요 CGImageGetWidth(maskRef) * percentage

+0

CGImageMaskCreate에서 시도 할 수 있습니다. 진행 상황에 대한 업데이트가 발생할 때마다 마스크를 다시 작성해야합니까? 그 코드를 넣는 것만으로 효과가 없습니다. – ChickensDontClap

관련 문제