1

ECSlidingControlleriOSアプリケーションで使用しています。私はすでに要件とデモを確認しました。ECSlidingController は私が望むように機能しましたが、ビューに影を追加できませんでした。

ここで私がしたこと、これはベース ビュー コントローラー ( DetailViewControllerUIViewController です) であり、スライド ビューとその名前をトリガーします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.hTabBar の属性を追加してチェックしました。つまり、クリップのサブビューはfalse. でシャドウも試したTableViewので、self.view.layerをself.tableView.layerに変更し、シャドウを再度設定できませんでした。

何か間違っていることでも?

どんな助けでも素晴らしいでしょう。

4

3 に答える 3

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 である可能性があります。これと同じ問題があり、UIViewController ビューではなく UINavigationController ビューにシャドウを追加して修正しました。たとえば、次の代わりに:

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 に答える