2012-05-06 11 views
2

おそらく初心者ビットの質問ですが、私はUITabBarControllerを使用するiPhoneアプリケーションを作成しています。 Interface Builderでは、MainWindow.xibにタブバーを設定しました。私は4つのタブがあり、それぞれ適切なUIViewControllerサブクラスのxibをロードするように設定されています。 Interface Builderの各UIViewControllerサブクラスのxibファイルにビューを作成しました。 私はそれぞれのタブをタップすることができますし、正しいUIViewControllerのビューを表示します。ビューを半透明の境界線にして下にビューを表示するには

しかし、私が本当に望むのは、UIViewControllerサブクラスの半透明の境界を約30pxすべての4つのエッジで、後ろのビューの端をグレー表示します。 IE。 IE。最初のタブはメインアプリケーションで、それは画面全体(ステータスとタブバーの領域を除いたもの)を占めます。タブ2は保存するためのもので、メインアプリケーションの上に小さなモーダルウィンドウのように表示します。 (htmlウェブアプリケーションとしてこれを行っていた場合、使用する用語と技術はjQueryオーバーレイになります)

これは意味がありますか?

私はpresentModalViewControllerで試してみましたが、これはステータスとタブバー領域を含む画面全体を占めるという点でそれを悪化させます。

任意のヘルプやポインタ非常に高く評価 乾杯

ネイサン

+0

可能な複製http://stackoverflow.com/questions/849458/transparent-modal-view-on-navigation-controller – Joel

答えて

1

iphoneが現在(保存することが示されていない、それ以下のビューをアンロードする可能性があるため、あなたののUIViewControllerは、その下のビューには透過することはできませんメモリ)。

私が使用した最良の解決策は、新しいビューコントローラをプッシュして、それを背景画像として使用する前に、現在のビューを撮影することです(透明にする)。ここで私はこれを実装する方法は次のとおりです。

NewViewController *newView = [[NewViewController alloc] init]; 
shareVC.imageBackground = [Utilities getScreenshot:self.view]; 
[self presentModalViewController:newView animated:YES]; 
[newView release]; 

、あなたのnewViewControllerに(などのviewDidLoad、viewWillAppear、上で)これを行う:

[imageView setImage:imageBackground]; 

、ここではスクリーンショット機能は、あなたが、その後必要

+(UIImage *)getScreenshot:(UIView *)_view { 
    //take a screenshow of the parent view so we can add it as a background to the modal view 
    if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) 
     UIGraphicsBeginImageContextWithOptions(_view.window.bounds.size, NO, [UIScreen mainScreen].scale); 
    else 
     UIGraphicsBeginImageContext(_view.window.bounds.size); 
    [_view.window.layer renderInContext:UIGraphicsGetCurrentContext()]; 
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 
    return image; 
} 

ていますバックグラウンドとしてUIImageViewを使って新しいビューを設定し、そのimageViewの正しいアルファ値を選択して透明に見えるようにします。

+0

私はちょうど思い出した、私はSOの質問からこのアイデアを得た。 http://stackoverflow.com/questions/849458/transparent-modal-view-on-navigation-controller – Joel

+0

Joelに感謝します。 iPhoneアプリの初心者では、IOSがどのようにビューをアンロードするのかを知りたいが、ペニーは落とさなかった!これは今あなたがそれを説明する完全な意味があります:) –

関連する問題