-layoutSubviews
親ビューの2 つのバージョンがあります。何かのようなもの:
-(void)layoutSubviews
{
if ( self.mode == 0 )
{
[ self layoutMode0 ] ;
}
else if ( self.mode == 1 )
{
[ self layoutMode1 ] ;
}
}
レイアウト コードでは、特定のビューを表示/非表示にしたり、背景画像を設定したりすることもできます。コードでモードを切り替えるには、-setNeedsLayout
次のように呼び出します。
-(void)setMode:(enum Modes)newMode
{
_mode = newMode ;
[ self setNeedsLayout ] ;
}
モード スイッチをアニメーション化する場合は、次のようにします。
-(void)setMode:(enum Mode)newMode animated:(BOOL)animated
{
_mode = newMode ;
if ( animated )
{
[ UIView animateWithDuration:0.25 animations:^{
[ self layoutSubviews ] ;
} ]
}
else
{
[ self setNeedsLayout ] ;
}
}
通常のセッターは次の-setMode:
ようになります。
-(void)setMode:(enum Mode)newMode
{
[ self setMode:newMode animated:NO ] ;
}