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


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

Введите описание изображения здесь

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

Введите описание изображения здесь

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

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

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

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

3 4

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.0 f в JASlidePanelController.m файл:

- (void)stylePanel:(UIView *)panel {
      //do changes in below cornerRadius
      panel.layer.cornerRadius = 0.0f;
      panel.clipsToBounds = YES;   }