iPhone:重新定位子视图

时间:2012-03-09 09:58:45

标签: iphone

我有一个自定义的UIView。在initWithFrame中我添加了图像

 - (id)initWithFrame:(CGRect)frame
{
 self = [super initWithFrame:frame];
if (self) {
     self.bgImage = [[[UIImageView alloc] initWithFrame:
        CGRectMake(frame.size.width - 10, 20, 50 , 50)] autorelease];
    [self.bgImage setImage:[UIImage imageNamed:@"myImage.png"];];
}    
return self;
}

创建自定义UIView时,一切都很好。但是当我改变它的框架时,我的图像位置没有改变。如何解决?尝试使用autoresize mask,但它没有帮助。

1 个答案:

答案 0 :(得分:4)

像这样覆盖layoutSubviews

- (void)layoutSubviews {
    [super layoutSubviews];
    self.bgImage.frame = CGRectMake(frame.size.width - 10.0f, 20.0f, 50.0f, 50.0f);
}

基本上,只要需要重新布局,就会调用它。因此,您应该根据需要设置任何子视图的框架。