使用ECSlidingController时阴影不可见

时间:2013-02-21 10:58:12

标签: ios

我在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并且无法再设置阴影。

有什么不对吗?

任何帮助都会很棒。

3 个答案:

答案 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;

与创建自己的阴影层相比,这非常简单,而且我还没有看到任何性能问题。