Настройка строки состояния 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
а также
Я попробовал простую тестовую базу на демонстрационном исходном коде 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; }