【问题标题】:Add Subview to SKStoreProductViewController将子视图添加到 SKStoreProductViewController
【发布时间】:2014-04-17 16:25:14
【问题描述】:

我试图通过 SKStoreProductViewController 来弥补 Apple 缺乏创新的问题。我很确定这是不可能的,但让我们看看。

我在这个块之外展示视图控制器:

    [storeController loadProductWithParameters:productParameters completionBlock:^(BOOL result, NSError *error) {}];
    [self presentViewController:storeController animated:YES completion:^{}];

这样视图控制器会立即显示,而不是等待 30 秒来加载产品。但是,现在它在加载产品时显然显示了一个空白控制器。我很想在窗口上放一个UIActivityIndicatorView,直到产品加载。我试过这个:

      [self presentViewController:storeController animated:YES completion:^{
            UIActivityIndicatorView *activity = [[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
            [activity startAnimating];
            activity.frame = CGRectMake(0, 0, 44, 44);
            activity.center = self.view.window.center;
            [self.view.window addSubview:activity];
        }];

那里没有运气。是否可以在此视图之上添加活动指示器?

【问题讨论】:

    标签: ios uiwindow


    【解决方案1】:

    您是否尝试在 SKStoreProductViewController 加载完成后调出视图控制器?像这样

    [storeController loadProductWithParameters:productParameters completionBlock:^(BOOL result, NSError *error) 
    {
        [self presentViewController:storeController animated:YES completion:^{}];
    }];
    

    【讨论】:

    • 我有,但这会给用户带来相当大的延迟。他们按下按钮……然后根据网络状况,什么也没有发生,最终商店工具包启动。不幸的是,在视图触发之前抛出一个活动指示器并不能很好地与 UI 配合使用。
    • 出于好奇,这是否意味着 SKStoreProductViewController 上的 loadProduct 需要太长时间?
    • 是的,因为在这种情况下它正在等待完成,因此视图控制器不会显示。 “太长”当然是相对的,但有时让 30 秒……这对我来说太长了,没有用户反馈。
    • 不知道您的代码,SKStoreProductViewController 是否可以更早地调用 -loadProductWithParameters?这样当展示新的视图控制器时,您可以立即切换?
    • 祝你好运。如果你找到了,别忘了在这里发布你的解决方案
    猜你喜欢
    • 1970-01-01
    • 2011-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多