1

ECSlidingController在我的 iOS 应用程序中使用。我已经检查了要求和演示。ECSlidingController 按我想要的方式工作,但仍然无法为视图添加任何阴影。

这是我所做的,这是基本视图控制器(DetailViewController是一个 UIViewController),它将触发滑动视图及其名称DetailContextViewController(左或右根本不重要):

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

有什么不对的吗?

任何帮助都会很棒。

4

3 回答 3

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;
于 2013-02-21T14:00:16.373 回答
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。

于 2013-08-15T03:19:08.997 回答
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;

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

于 2015-02-09T18:39:35.583 回答