4

私は自分のアプリでJASidePanelsを使用していますが、これまでのところすべてがうまくいっています。私のデザイン チームは、サイド パネルが表示または表示されたときに、このような UI デザインを考え出しました。

ここに画像の説明を入力

しかし、私はのように再現することができます!これ。

ここに画像の説明を入力

私がこれまでに試したことはすべて:

中央パネルの背景色を、右側のパネルにある画像に設定してみました - うまくいきません。

sidePanel.view.backgroundColor と tintColor を設定してみました - うまくいきません。

どんな助けでも大歓迎です!

4

3 に答える 3

3

これはJASidePanelsのバグですが、これを行うことで問題を修正しました:JASidePanelsControllerに以下のコードを追加します_adjustCenterFrame

- (CGRect)_adjustCenterFrame {
    CGRect frame = self.view.bounds;

    if(SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0"))
    {
        if (![UIApplication sharedApplication].statusBarHidden) {
                        frame.origin.y = frame.origin.y + [UIApplication sharedApplication].statusBarFrame.size.height;
                        frame.size.height = frame.size.height - 20;
                    }

        } 
...
}

また_layoutSideContainers追加で:

- (void)_layoutSideContainers:(BOOL)animate duration:(NSTimeInterval)duration {
    CGRect leftFrame = self.view.bounds;
    CGRect rightFrame = self.view.bounds;



    if(SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0"))
    {
        if (![UIApplication sharedApplication].statusBarHidden) {
                    leftFrame.origin.y = leftFrame.origin.y + [UIApplication sharedApplication].statusBarFrame.size.height;
                    rightFrame.origin.y = rightFrame.origin.y + [UIApplication sharedApplication].statusBarFrame.size.height;
            leftFrame.size.height = leftFrame.size.height - 20;
            rightFrame.size.height = rightFrame.size.height - 20;
                        }
            }

    ...
}

参照 :

https://github.com/hamin/JASidePanels/commit/81ae7514d275d9242ad268ab818441c8d786a63e

https://github.com/gotosleep/JASidePanels/pull/164

于 2014-01-29T08:47:16.837 に答える
1

JASidePanels のデモ ソース コードで簡単なテスト ベースを試してみました。そして、この効果を得ました:

スクリーンショット

これが望ましくない場合は、この回答を無視して削除してください。


JASidePanels のソース コードを変更することで機能します。

テストのために、追加します self.window.backgroundColor = [UIColor redColor]

あなたの状況では、[self.window addSubview:backgroundImageView] またはを追加することができますjaSidePanelController.view addSubview:backgroundImageView(これを自分でテストしてください)

次に、スペースを追加して左パネルのフレームのサイズを変更し、左パネルがステータス バーの背景画像ビューを覆わないようにします。のJASidePanelController#_layoutSidePanels

PS: 詳細については、http://www.doubleencore.com/2013/09/developers-guide-to-the-ios-7-status-bar/などの iOS 7 ステータス バーに関する記事を参照してください。

ところで: あなたのスクリーンショットには何もないことに興味がありcornerRadiusます。

于 2014-01-26T09:05:39.987 に答える
0

JASlidePanelController.m ファイルで cornerRadius 0.0f を設定するだけです。

- (void)stylePanel:(UIView *)panel {
      //do changes in below cornerRadius
      panel.layer.cornerRadius = 0.0f;
      panel.clipsToBounds = YES;   }
于 2014-09-25T08:08:22.917 に答える