ナビゲーションコントローラー内にビューがあり、ユーザーが何をすべきかについていくつかのことを示す「フル(アプリケーション)画面」オーバーレイを作成したいと思います。私はこれが他のアプリで少し透明性を持って行われているのを見てきました、そしてそれはうまくいきます。以下を試していますが、コンテンツはnavcontrollerヘッダーの下に表示されます。調査では、長方形を「ウィンドウレベル」の場所に変換することなどについて話し合っていますが、それでもその下にあります。
以下の私の弱い試みに代わるものはありますか?または、サンプルへのリンクも素晴らしいでしょう。
ありがとう!
HelpOverlayUIView _overlayView;
public void PresentHelpOverlay()
{
RectangleF windowFullFrame = new RectangleF(0,0,UIScreen.MainScreen.Bounds.Width,UIScreen.MainScreen.Bounds.Height);
// Conversion?
//[aView convertPoint:localPosition toView:nil];
RectangleF overlayFrame = View.ConvertRectFromView(windowFullFrame ,null);
// Clear old one if it exists.
if (_overlayView != null) _overlayView = null;
// Instantiate popup view and add to (in this case the 2nd tier view). This is in an abstract class, if in a concrete one it'd normally just be View.Add
_overlayView = new HelpOverlayUIView(this, overlayFrame);
// tried th, didn't change it.
// this.WantsFullScreenLayout = true;
// _childView.BringSubviewToFront(_overlayView);
_overlayView.Alpha = 0;
_childView.Add (_overlayView);
// Setup event to close without doing anything.
_overlayView.CloseView += (sender, e) => {
Console.WriteLine ("close called");
// animate modal popup's departure
UIView.Animate (
0.5f,
() => {
// Anim Code
_overlayView.Alpha = 0;
},
null
);
};
// animate modal popup's arrival
UIView.Animate (
0.5f,
() => {
// Anim Code
_overlayView.Alpha = 1;
},
null
);
}
(ビューは、テキストなどをビューに配置するDraw()メソッドへのオーバーロードを備えた単なるUIViewです)