美文网首页iOS开发(OC)
SKStoreProductViewController上面嵌套

SKStoreProductViewController上面嵌套

作者: 廖燊 | 来源:发表于2018-12-14 09:35 被阅读0次

    前言:

    公司产品需要完成像腾讯新闻中信息流中,上面播放视频广告,下面嵌套App Store下载内嵌页面

    如图:

    由于第一次接触,采用的是SKStoreProductViewController,只要传入APP ID就可以在应用中模态弹出一个内嵌页面代码如下:

        SKStoreProductViewController *productVC = [[SKStoreProductViewController alloc] init];

        productVC.delegate =self;

        [KeyWindow.rootViewController presentViewController:productVC animated:YEScompletion:nil];

        [productVC loadProductWithParameters:@{SKStoreProductParameterITunesItemIdentifier:itunesId}completionBlock:^(BOOLresult, NSError *_Nullableerror) {

        }];

        __block RACDisposable *handler = [[productVC rac_signalForSelector:@selector(productViewControllerDidFinish:) fromProtocol:@protocol(SKStoreProductViewControllerDelegate)] subscribeNext:^(RACTuple * _Nullable x) {

            RACTupleUnpack(SKStoreProductViewController* productViewController) = x;

            [KeyWindow.rootViewController dismissViewControllerAnimated:YEScompletion:nil];

            productVC.delegate =nil;

            [handler dispose];

        }];

    那么问题就来了,如何在上面添加的视频播放视图被遮挡住了,就会出现这种情况如图:

    一开始是想着用两个导航栏,或者两个控制器添加到原来的控制器里面,走了很多弯路,浪费了两天时间,看了SKStoreProductViewController的源码,只有几个方法。最后在朋友帮助下,用了一个取巧的办法,就是在模态弹出控制器后,将视图里面的子view的fram下移,记住这里说的是子view,如果你之间下移self.viewd 话会出现上半部分无法点击。这里关系到响应链的问题,自己百度哈,就不啰嗦,之间上代码:

          //修改字视图frame

    [selfpresentViewController:productVC animated:YEScompletion:^{

             for(inti =0; i < productVC.view.subviews.count; i++) {

                 UIView *subView = productVC.view.subviews[i];

                 subView.frame = CGRectMake(0, kPtBy2xScale(self.playViewHeiht), ScreenW, ScreenH - kPtBy2xScale(self.playViewHeiht));

             }

     }];

    view.subviews 就是拿到控制器里面的字view再进行下移,就可以得到想要的结果啦。

    然后在上面添加视频播放器,就可以实现如图的效果:

    这里需要注意的一点是,如果出现视图无法滚动到最底层,那是因为我们把视图下移了,只要修改,view,fram的高度即可。

    相关文章

      网友评论

        本文标题:SKStoreProductViewController上面嵌套

        本文链接:https://www.haomeiwen.com/subject/lrdwhqtx.html