3

の左側にサブビューを追加する必要がありUIViewControllerます。これは、masterview が非表示の場合 (縦向き)、画面の左側に何かがあることをユーザーに示します。そして、このビューは の左側の部分と一緒に移動する必要がありUISplitViewます。これらの 2 つの画像の矢印の付いたビューのようなもの。(ロシア語のインターフェースで申し訳ありません) http://s2.uploads.ru/8EHJI.png http://s2.uploads.ru/NhEam.png しかし、私の問題は、そのようなビューを追加しようとすると、 masterview の境界であり、masterview が非表示の場合は表示されません。私はそれを間違っていると思います。これを行う簡単な方法があります。

更新:次のようなハックを作成しようとしました:

-(void) clipToBoundsRecursive:(UIView *)someView
{
    NSLog(@"%@", someView);
    someView.clipsToBounds = NO;
    for (UIView *v in someView.subviews)
    {
        [self clipToBoundsRecursive:v];
    }
}

のビューに送信しますsplitviewcontroller

UISplitViewController *splitViewController = (UISplitViewController *)self.window.rootViewController;
[self clipToBoundsRecursive:splitViewController.view];

最初に有効になります(マスタービューの境界外のサブビューが表示されますが、最初の表示/非表示アニメーションの後、このメソッドを再度呼び出しても表示されなくなります)

4

4 に答える 4

6

ビューをウィンドウの に直接追加できviewますが、デバイスがいつ回転するかによって、その位置を手動で管理する必要があります。に追加されたビューは、 のwindow.view上に表示されrootViewController.viewます。

于 2013-03-05T21:39:33.077 に答える
3

ここで簡単なロジックを説明しました: (を追加してUIViewWindowマスターまたは詳細ビューから呼び出す方法)

で作成UIView#import "AppDelegate.h"

- (void) CreateViewInWindow
{
    UIView *myView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 780)];// set as u wish
    myView.backgroundColor = [UIColor redColor];

    // I have added myView to the Window with a specific animation , your can give animation as you like. :)
    [UIView transitionWithView:self.window duration:0.5
                       options:UIViewAnimationOptionTransitionCrossDissolve // change to whatever animation you like
                    animations:^ { [self.window addSubview:myView]; }
                    completion:nil];
}

ここ UIButtonで、DetailViewController.mファイルに単純なものを作成します(コードはいずれかのファイルに配置できます、DetailViewController.mまたはMasterViewController.m

UIButton *btnShowView = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[btnShowView addTarget:self action:@selector(btnShowViewTapped:) forControlEvents:UIControlEventTouchUpInside];
btnShowView.frame = CGRectMake(20, 30, 174, 35);
//[btnLoginInner setBackgroundImage:[UIImage imageNamed:@"LoginBut.png"] forState:UIControlStateNormal];
[self.view addSubview:btnShowView];

UIView ボタン タップ メソッドでは、から呼び出すコードを記述し、を追加する ことAppDelegate忘れないでください。#import "AppDelegate.h"DetailViewController.m

-(void)btnShowViewTapped:(UIButton *) Sender
{
    AppDelegate *del = (AppDelegate *)[[UIApplication sharedApplication] delegate];
    [del performSelector:@selector(CreateViewInWindow) withObject:nil afterDelay:0];
}

上記のコードは、問題の簡単なロジックです。役に立つかもしれません。

于 2013-03-07T14:54:00.097 に答える
2

あなたのアプリはPKRevealControllerの恩恵を受けることができるように思えます。

于 2013-03-12T19:22:42.237 に答える
1

ペン先を使用している場合は、ID で自動レイアウト オプションの選択を解除し、パンと入力してみてください。それ以外の場合は、現在のクリッピングを表示するように自動サイズ変更マスクを設定します。私はそれが問題を解決すると信じています

于 2013-03-12T11:37:11.933 に答える