0

アプリでSplitViewを作成するために、PKRevealController を使用しています。ファイルではPKRevealController.m、このコードを使用してどのくらいの画面が表示されるかに値を与えています

#define DEFAULT_LEFT_VIEW_WIDTH_RANGE NSMakeRange(273, 310)

これはiPhone用ですが、サイズを選択するループを作りたいです。デバイスがiPadよりも大きい場合、そうでない場合は小さいので、外にあるため、どうすればこれを行うことができますか@interface PKRevealController

私はグーグルでいくつかのコードをチェックしました、そして私はこのように見つけました

#if defined(__IPHONE_6_0) || defined(__MAC_10_8)
#define AF_CAST_TO_BLOCK id
#else
#define AF_CAST_TO_BLOCK __bridge void *

では、デバイスを選択するためにこのようなものを作成できますか?

4

2 に答える 2

0

それを行う方法があるとは本当に思いません。通常、そのような問題は、次のように 2 つの #define ステートメントを作成することで解決されます。

#define DEFAULT_LEFT_VIEW_WIDTH_RANGE_IPHONE NSMakeRange(273, 310)
#define DEFAULT_LEFT_VIEW_WIDTH_RANGE_IPAD NSMakeRange(273, 310)

コードで使用する必要がある場合は、次のようにデバイスの種類を確認してください。

if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {
    /* code that uses DEFAULT_LEFT_VIEW_WIDTH_RANGE_IPAD */
}
else {
    /* code that uses DEFAULT_LEFT_VIEW_WIDTH_RANGE_IPHONE */
}
于 2013-07-25T14:33:16.893 に答える
0

このコードを使用して、必要に応じてこの変更値を達成できます

あなたのPKRevealController.mで

#define DEFAULT_LEFT_VIEW_WIDTH_RANGE_iPad NSMakeRange(700, 700)

#define DEFAULT_LEFT_VIEW_WIDTH_RANGE_iPhone NSMakeRange(273, 310)

#define DEFAULT_RIGHT_VIEW_WIDTH_RANGE_iPad DEFAULT_LEFT_VIEW_WIDTH_RANGE_iPad
#define DEFAULT_RIGHT_VIEW_WIDTH_RANGE_iPhone DEFAULT_LEFT_VIEW_WIDTH_RANGE_iPhone

そして iterface でメソッドを見つけてsetup、このメソッドに置き換えます

プラグママーク - セットアップ

- (void)setup
{
    self.state = PKRevealControllerFocusesFrontViewController;
    if ([[UIDevice currentDevice] userInterfaceIdiom] ==UIUserInterfaceIdiomPhone)
    {
        //device is iPhone
        self.leftViewWidthRange = DEFAULT_LEFT_VIEW_WIDTH_RANGE_iPhone;
        self.rightViewWidthRange = DEFAULT_RIGHT_VIEW_WIDTH_RANGE_iPhone;
    }
    else
    {
        //device is iPad
        self.leftViewWidthRange = DEFAULT_LEFT_VIEW_WIDTH_RANGE_iPad;
        self.rightViewWidthRange = DEFAULT_RIGHT_VIEW_WIDTH_RANGE_iPad;
    }
   
    
    self.view.autoresizingMask = (UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth);
}

それが仕事であるべきよりも.. :)

于 2013-07-25T14:40:28.477 に答える