2012-10-09 52 views
0

我有一个自定义UIImageView这将插入这样一个子层:调整大小的UIImageView剪辑子

- (id)initWithFrame:(CGRect)frame 
{ 
    self = [super initWithFrame:frame]; 
    if (self) { 
     small_ = frame; 
     float newX = self.center.x - ((self.frame.size.width*SELECTED_SCALE_VALUE)*0.5); 
     float newY = self.center.y - ((self.frame.size.height*SELECTED_SCALE_VALUE)*0.5); 
     big_ = CGRectMake(newX, newY, self.frame.size.width*SELECTED_SCALE_VALUE, self.frame.size.height*SELECTED_SCALE_VALUE); 

     [self setupSubviews]; 
    } 
    return self; 
} 

- (void)setupSubviews 
{ 
    shadowImage_ = [[UIImage imageNamed:@"gallery_shadow_frame"] resizableImageWithCapInsets:UIEdgeInsetsMake(20, 20, 20, 20)]; 
    shadowImageView_ = [[UIImageView alloc] initWithFrame:[self shadowFrame]]; 
    shadowImageView_.image = shadowImage_; 
    shadowImageView_.backgroundColor = [UIColor blueColor]; 
    [self.layer insertSublayer:[shadowImageView_ layer] atIndex:0]; 
} 

当我后来调整UIImageView它剪辑的子层的框架:

- (void)makeBig 
{ 
    self.frame = big_; 
    // shadowImageView_.frame = [self shadowFrame]; 
} 

- (void)makeSmall 
{ 
    self.frame = small_; 
    // shadowImageView_.frame = [self shadowFrame]; 
} 

授予完整的画面,也有这样的:

- (CGRect)shadowFrame 
{ 
    int x = -X_BORDER; 
    int y = -Y_BORDER; 
    int width = self.frame.size.width + X_BORDER * 2; 
    int height = self.frame.size.height + Y_BORDER * 2; 
    return CGRectMake(x, y, width, height); 
} 

我如何调整UIImageView,但阻止它从剪辑是shadowImageView_ sublayer

回答

1

你试过

self.layer.masksToBounds = NO;