小编dlb*_*ley的帖子

使用UICollectionViewFlowLayoutAutomaticSize的iOS 10/11 UICollectionViewFlowLayout导致页脚补充视图未对齐

所以这是我们UICollectionViewFlowLayout在iOS 10上发现的一个有趣的问题(仍然是11的问题)并UICollectionViewFlowLayoutAutomaticSize用于estimateItemSize.

我们发现使用UICollectionViewFlowLayoutAutomaticSizeestimatedItemSize导致页脚补充视图浮动在底部的几个单元格之上.(红色/粉红色是标题,绿色是页脚.)

UICollectionViewFlowLayoutAutomaticSize问题 在此输入图像描述

以下是示例应用的VC代码:

import UIKit

class ViewController: UIViewController {

    // MARK: Properties

    let texts: [String] = [
        "This is some text",
        "This is some more text",
        "This is even more text"
    ]

    // MARK: Outlets

    @IBOutlet var collectionView: UICollectionView! {
        didSet {
            self.collectionView.backgroundColor = .orange
        }
    }

    // MARK: Lifecycle

    override func viewDidLoad() {

        super.viewDidLoad()

        // Layout
        let layout = UICollectionViewFlowLayout()
        layout.scrollDirection = .vertical
        if #available(iOS 10.0, *) {
            layout.estimatedItemSize = UICollectionViewFlowLayoutAutomaticSize
        } …
Run Code Online (Sandbox Code Playgroud)

ios uicollectionview uicollectionviewlayout

23
推荐指数
2
解决办法
1万
查看次数

Facebook Analytics Push on iOS仅适用于偶尔

我一直在与此争斗一段时间,但我终于屈服于提交一个问题,看看是否有其他人有问题.

基本上我正在尝试使用Facebook Analytics推送服务,似乎只是在某些时候接收推送通知.我一直在使用charles代理拦截API调用,以确保Facebook SDK正确发送推送令牌,并按预期记录事件.从这个角度看,一切都很好.

接下来,我使用设置页面上的"推送广告系列设置验证"来尝试发送推送和应用内推送测试,这些也可以在3个测试设备上正常工作(卡片在设备上正确显示等)我是使用.

在尝试创建将推送发送到设备的某个部分的广告系列时,问题就出现了.我试过的第一台设备完全没有问题,但随后的设备(根本没有对代码库进行任何更改)将不会从我设置的任何广告系列中获得任何推送.我的目标受众是"设备操作系统是iOS",因此我希望所有iOS设备都能从广告系列中获得推动.这似乎有点奇怪,所以我删除了所有设备上的应用程序并重新重建它们(确保测试推送适用于所有设备)并再次设置广告系列,但这次甚至第一台设备也不再有效.在事件调试器中,我得到一个'推送通知错误'和'InvalidDeviceOS'的error_message,这根本没有意义.

我已经回来了第四次,现在几个小时没有成功.我可以看到令牌被发送到Facebook,我可以看到事件调试器中记录的事件,我可以在设置中使用推送测试服务,所有设备都可以毫无问题地接收推送,但是一旦我尝试使用我一无所获.

为了完成目的,这里是我正在使用的代码片段:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    // ...
    application.registerUserNotificationSettings(UIUserNotificationSettings(forTypes: [.Alert, .Badge, .Sound], categories: nil))
    // ...
}

func application(application: UIApplication, didRegisterUserNotificationSettings settings: UIUserNotificationSettings) {
    UIApplication.sharedApplication().registerForRemoteNotifications()
}

func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) {

    FBSDKAppEvents.setPushNotificationsDeviceToken(deviceToken)
}
Run Code Online (Sandbox Code Playgroud)

最后,这是在3个不同的设备上打开全新安装后的事件调试器(请参阅第一个启动事件,2个应用程序启动有ID,1个没有,因为它还没有登录).

在此输入图像描述

对此有任何帮助都很棒,谢谢.

更新:我创建了一个全新的应用程序和一个全新的Facebook分析实例,新的推送证书等.最初我开始接受广告系列推送,但一旦我删除并重新安装该应用程序,广告系列消息就开始再次失败.然后我将其安装到另一台设备上并克隆现有的广告系列并再次尝试.这导致原始设备获得推动但新设备没有......令人难以置信!

现在我不知道最近发生了什么.从表面上看,一旦APNS发出推送错误,Facebook服务似乎变得不稳定,但由于事件调试器中的错误报告几乎无用,因此很难证明这一假设.

再次为了完整性,这里是来自新应用程序的代码:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

    FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)

    application.registerUserNotificationSettings(UIUserNotificationSettings(types: [.alert, .badge, .sound], categories: nil))

    return true
}

func applicationDidBecomeActive(_ application: …
Run Code Online (Sandbox Code Playgroud)

ios facebook-analytics

5
推荐指数
0
解决办法
409
查看次数