Настройка строки состояния iOS JASidePanel

Я использую JASidePanels в своем приложении, и пока все хорошо. Моя команда дизайнеров придумала такой дизайн пользовательского интерфейса, когда боковая панель показана или открыта,

Но я умею воспроизводить как! этот.

Что все, что я пробовал до сих пор:

Я попытался установить цвет фона центральной панели для изображения, которое у меня есть на правой панели - Не повезло.

Я попытался установить sidePanel.view.backgroundColor, а также tintColor - не повезло.

Любая помощь приветствуется!

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

Я попробовал простую тестовую базу на демонстрационном исходном коде JASidePanels. И получил этот эффект:

Скриншот

Если это не то, что вы хотите, пожалуйста, проигнорируйте этот ответ и удалите его.


Это работает путем изменения исходного кода JASidePanels:

Для тестирования добавляю self.window.backgroundColor = [UIColor redColor]

В вашей ситуации вы можете добавить [self.window addSubview:backgroundImageView]или же jaSidePanelController.view addSubview:backgroundImageView (пожалуйста, проверьте это самостоятельно)

Затем измените размер рамки левой панели, добавив дополнительное пространство, чтобы левая панель не закрывала фоновое изображение для строки состояния. В JASidePanelController#_layoutSidePanels

PS: для более подробной информации, вы должны прочитать статьи о строке состояния iOS 7, такие как http://www.doubleencore.com/2013/09/developers-guide-to-the-ios-7-status-bar/

Кстати: мне любопытно, что нет cornerRadius на вашем скриншоте.

Просто установите значение cornerRadius 0.0f в файле JASlidePanelController.m:

- (void)stylePanel:(UIView *)panel {
      //do changes in below cornerRadius
      panel.layer.cornerRadius = 0.0f;
      panel.clipsToBounds = YES;   }
Другие вопросы по тегам