2012-03-09 17 views
0

私はカスタムUIViewを持っています。 initWithFrameで私は画像を追加しますiPhone:サブビューを再配置

- (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を作成するとすべてです。しかし、フレームを変更すると、イメージの位置は変わらなかった。それを修正するには?自動サイズ変更マスクを試してみましたが、それは役に立たなかった。そのような

答えて

4

オーバーライドlayoutSubviews:再レイアウトが必要な時はいつでも

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

は基本的に、これが呼び出されます。したがって、必要に応じて任意のサブビューのフレームを設定する必要があります。