[英]Resizing UIImageView clips sublayer
I have a custom UIImageView
which inserts a sublayer like this: 我有一个自定义的
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];
}
When I later resize the frame of the UIImageView
it clips the sublayer: 当我稍后调整
UIImageView
框架的大小时,它将UIImageView
子层:
- (void)makeBig
{
self.frame = big_;
// shadowImageView_.frame = [self shadowFrame];
}
- (void)makeSmall
{
self.frame = small_;
// shadowImageView_.frame = [self shadowFrame];
}
To give a complete picture, there is also this: 为了提供完整的图片,还有以下内容:
- (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);
}
How do I resize the UIImageView
, but prevent it from clipping it's shadowImageView_ sublayer
? 如何调整
UIImageView
大小,但防止其裁剪shadowImageView_ sublayer
?
Have you tried 你有没有尝试过
self.layer.masksToBounds = NO;
? ?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.