我在我的应用程序中使用JASidePanels,到目前为止一切都很好。我的设计团队提出了这样的 UI 设计,当显示或显示侧面板时,
但我能够像这样复制!这。
到目前为止我所做的一切:
我尝试将中心面板的背景颜色设置为右侧面板中的图像 - 不走运。
我尝试设置 sidePanel.view.backgroundColor 和 tintColor - 不走运。
任何帮助表示赞赏!
我在我的应用程序中使用JASidePanels,到目前为止一切都很好。我的设计团队提出了这样的 UI 设计,当显示或显示侧面板时,
但我能够像这样复制!这。
到目前为止我所做的一切:
我尝试将中心面板的背景颜色设置为右侧面板中的图像 - 不走运。
我尝试设置 sidePanel.view.backgroundColor 和 tintColor - 不走运。
任何帮助表示赞赏!
这是 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
你的截图中没有。
只需在 JASlidePanelController.m 文件中设置cornerRadius 0.0f:
- (void)stylePanel:(UIView *)panel {
//do changes in below cornerRadius
panel.layer.cornerRadius = 0.0f;
panel.clipsToBounds = YES; }