将子视图添加到 SKStoreProductViewController
Posted
技术标签:
【中文标题】将子视图添加到 SKStoreProductViewController【英文标题】:Add Subview to 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];
];
那里没有运气。是否可以在此视图之上添加活动指示器?
【问题讨论】:
【参考方案1】:您是否尝试在 SKStoreProductViewController 加载完成后调出视图控制器?像这样
[storeController loadProductWithParameters:productParameters completionBlock:^(BOOL result, NSError *error)
[self presentViewController:storeController animated:YES completion:^];
];
【讨论】:
我有,但这会给用户带来相当大的延迟。他们按下按钮……然后根据网络状况,什么也没有发生,最终商店工具包启动。不幸的是,在视图触发之前抛出一个活动指示器并不能很好地与 UI 配合使用。 出于好奇,这是否意味着 SKStoreProductViewController 上的 loadProduct 需要太长时间? 是的,因为在这种情况下它正在等待完成,因此视图控制器不会显示。 “太长”当然是相对的,但有时让 30 秒……这对我来说太长了,没有用户反馈。 不知道您的代码,SKStoreProductViewController 是否可以更早地调用 -loadProductWithParameters?这样当展示新的视图控制器时,您可以立即切换? 祝你好运。如果你找到了,别忘了在这里发布你的解决方案以上是关于将子视图添加到 SKStoreProductViewController的主要内容,如果未能解决你的问题,请参考以下文章