処理中を示すビューをつくる(iOS)
以前Android で似たような投稿をしましたが, iOSでも何かの処理中もしくは, 関係のないUIを触らせないようにするために,
影のかかったようなViewを作ります。
+(UIView *)makeShadowWithTag:(float)x y:(float)y width:(float)width height:(float)height tag:(int)tag
{
UIView *shadow = [[UIView alloc] initWithFrame:CGRectMake(x, y, width, height)];
shadow.tag = tag;
shadow.backgroundColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.5
];
return shadow;
}
+(void)removeViewWithTag:(int)tag view:(UIView *)view
{
for ( UIView *tmp in view.subviews )
{
if ( tmp.tag == tag )
{
[tmp removeFromSuperview];
}
}
}
関数としてまとめてみました。makeShadowWithTag という関数で, 縦横の大きさおよび, このViewのタグをつけます。
UiViewを作って, background に透明の入ったViewをつくって, それを親View に重ねます。これで下のUIにはタッチできません。
これをはずすときは, 先ほど作成のときにつけたタグをもとに検索して, このViewだけをremoveします。
