我在iOS应用程序中使用ECSlidingController
。我已经检查了要求和演示。 ECSlidingController按照我的方式工作,但仍然无法为视图添加任何阴影。
这里我做了,这是基本视图控制器(DetailViewController
是一个UIViewController),它将触发滑动视图,其名称为DetailContextViewController
(左或右根本无关紧要):< / p>
-(void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
self.view.layer.shadowOpacity = 0.75f;
self.view.layer.shadowRadius = 10.0f;
self.view.layer.shadowColor = [UIColor blackColor].CGColor;
if (![self.slidingViewController.underRightViewController isKindOfClass:[DetailContextViewController class]]) {
self.slidingViewController.underRightViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"DetailAbout"];
}
}
这里是DetailContextViewController(这也是一个UIViewController):
- (void)viewDidLoad
{
[super viewDidLoad];
self.peekLeftAmount = 40.0f;
[self.slidingViewController setAnchorLeftPeekAmount:self.peekLeftAmount];
self.slidingViewController.underRightWidthLayout = ECVariableRevealWidth;
}
我已添加QuartCore.h
并检查了TabBar的属性,即剪辑子视图为false
。我也用TableView
尝试了阴影,所以用self.tableView.layer更改了self.view.layer并且无法再设置阴影。
有什么不对吗?
任何帮助都会很棒。
答案 0 :(得分:3)
我不知道您在哪里设置topViewController
,但您需要将阴影参数设置为topViewController
。例如:
self.slidingViewController.topViewController = newTopViewController;
newTopViewController.view.layer.shadowOpacity = 0.75f;
newTopViewController.view.layer.shadowRadius = 10.0f;
newTopViewController.view.layer.shadowColor = [UIColor blackColor].CGColor;
答案 1 :(得分:2)
self.slidingViewController.topViewController = newTopViewController;
self.slidingViewController.topViewController.view.layer.shadowOpacity = 0.75f;
self.slidingViewController.topViewController.view.layer.shadowRadius = 10.0f;
self.slidingViewController.topViewController.view.layer.shadowColor = [UIColor blackColor].CGColor;
这样会更好。有时候,newTopViewController是一个UINavigationController。
答案 2 :(得分:0)
问题可能是topViewController是一个UINavigationController。我有同样的问题并通过将阴影添加到UINavigationController视图而不是UIViewController视图来修复它。例如,而不是:
self.view.layer.shadowOpacity = 0.75f;
self.view.layer.shadowRadius = 10.0f;
self.view.layer.shadowColor = [UIColor blackColor].CGColor;
改为:
self.navigationController.view.layer.shadowOpacity = 0.75f;
self.navigationController.view.layer.shadowRadius = 10.0f;
self.navigationController.view.layer.shadowColor = [UIColor blackColor].CGColor;
与创建自己的阴影层相比,这非常简单,而且我还没有看到任何性能问题。