- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在展示一个 SKStoreProductViewController,并遇到一些约束冲突。我可以验证以前取消激活的约束是否正在重新激活。我不明白为什么会这样。
见下文,标记为*** ———>
<———— ***
为了您的阅读方便。
我能想到的唯一可能的问题是:我的应用程序是横向的,所以我必须继承 SKStoreProductViewController.shouldAutorotate 以返回 false。
class MyProductViewController : SKStoreProductViewController {
override var shouldAutorotate: Bool {
return false
}
}
func openStoreProduct(identifier: String) {
let storeViewController = MyProductViewController()
storeViewController.delegate = self
let parameters = [ SKStoreProductParameterITunesItemIdentifier : identifier]
storeViewController.loadProduct(withParameters: parameters) { [weak self] (loaded, error) in
if loaded {
print("In: \(self?.myConstraint.isActive)")
// *** ———> Prints "In: false". <——— ***
self?.present(storeViewController, animated: true) {
}
}
}
func productViewControllerDidFinish(_ viewController: SKStoreProductViewController) {
print("Out: \(self.myConstraint.isActive)")
// *** ———> prints "Out: true" <——— ***
viewController.dismiss(animated: true, completion: nil)
}
最佳答案
问题在于,当从展示 StoreProduct Controller 返回时,一些布局值已恢复为它们的 IB 值,丢失了以编程方式设置的值,例如isHidden
, isActive
等
在这种情况下,我在某些情况下替换了约束,但在不需要更改时让原始 IB 处于事件状态。从商店返回后,原始约束被重新激活,但它们的替换也仍然处于事件状态。当然他们有冲突。
解决方案是在 IB 中取消选中约束的“已安装”复选框,并为每个所需的情况替换(并激活)代码中的约束。而不是在您不想更改它时保持原样。
对于其他可能困惑的 UI 事物,您可以在 productViewControllerDidFinish()
中设置一个标志并在您的布局代码中对其进行测试。
这种行为可能与问题中提到的景观问题有关。在 iPhone 上,StoreProductViewController 仅以纵向模式显示。当应用程序处于横向状态时,当前的 ViewController 显示 StoreProduct 时,操作系统显然强制旋转应用程序为纵向,然后再显示商店。您可以看到这种情况短暂发生。 (这在 iPad 上不是问题,因为商店在任一方向都显示为弹出窗口。)
关于ios - 呈现 SKStoreProductViewController 重新激活非事件约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47169398/
找不到与此相关的任何信息...如果我从应用程序内启动 SKStoreProductViewController 实例,并向其提供该应用程序的 iTunes URL,它是否允许应用程序更新?换句话说,我
我正在尝试呈现 SKStoreProductViewController 没有 动画的实例。 StoreKit View Controller 的代码片段来自: objective-C SKStore
我已经为 SKStoreProductViewController 实现了一个委托(delegate)。我将该 View Controller 添加到关键窗口的 View Controller 中。我
我正在尝试使用 SKStoreProductViewController 在我的应用程序中以模态方式打开 App Store。我在网上看过很多例子,人们有两种方法可以做到这一点。 SKStorePr
我正在使用 SKStoreProductViewController 来实现“更多应用”功能,但是当我点击列表中的产品时,我只看到空白屏幕,控制台中也有警告: Could not request vi
我刚刚添加了 SKStoreProductViewController 并从我自己的 UIViewController 中呈现它。如果我将设备旋转到横向模式 - 只有标题适合宽度,其他部分被截断 ..
我在我的应用程序中使用 SKStoreProductViewController。它显示正确,但有几秒钟的延迟,这会降低用户体验。 我的代码有问题吗?或者我应该通知用户 VC 正在加载吗?因为现在人们
我正在尝试从我的应用中展示 App Store 表: https://gist.github.com/valeIT/bf9b357d8ef470fc559c 我的 ViewController 符合
我用适用于 iOS 9 的 Action Extension 制作了一个快速示例项目。它在我包含的应用程序中正常工作,但在我的扩展程序中不起作用。我在两个 View Controller 中使用了相同
当您在您的应用程序中呈现 SKStoreProductViewController 时,网络状况不佳或处于飞行模式时,不会呈现模态视图(因为它当然可以从应用商店检索数据),并且在代表。 那么在这种情况
我正在使用 SKStoreProductViewController 来显示所选应用程序的 App Store View 。单击“安装”时,按钮内显示进度条但未安装应用程序。我知道我并没有真正连接到
在我的应用中,我使用了一些广告 SDK。在其中许多情况下,当用户点击广告下载应用程序时,SDK 使用 SKStoreProductViewController 使用户能够获取应用程序。商店页面以模态视
我正在展示一个 SKStoreProductViewController,并遇到一些约束冲突。我可以验证以前取消激活的约束是否正在重新激活。我不明白为什么会这样。 见下文,标记为*** ———> P
在 iOS 6 中,引入了 SKStoreProductViewController 以在应用程序中显示 iTunes Store 项目,因此用户无需离开应用程序即可查看它们。 到目前为止,我还没有找
使用下面的代码,SKStoreProductViewController 可以呈现应用程序的描述。 当我触摸“免费”按钮时,它显示“安装应用程序”。然后我触摸“安装应用程序”,一个进度条显示在应用程序
我发现在 iOS 8 设备(真实设备)上运行: [storeProductViewController loadProductWithParameters:@{SKStoreProductParame
跟进此线程 targeting specific app with iOS in app purchase ,所有启动都很好,我看到了目标应用程序,但是当我按下“取消”(因为这是沙盒中唯一真正的选择)
在 iOS7 中,当出现 SKStoreProductViewController 时,它会显示状态栏,因此很难点击 [Cancel] 按钮。 可以禁用吗? 在我的应用中,UIViewControll
我目前正在通过 dispatch_async 调用 storeViewController loadProductWithParameters。是否可以设置一个超时值,以便它只尝试获取 X 秒的结果然
在我的应用程序中,我展示了更多带有 SKStoreProductViewController 的应用程序,但 Apple 商店审核团队拒绝了它,原因是: "An error message displ
我是一名优秀的程序员,十分优秀!