小编Mag*_*goo的帖子

UICollectionView部分中出现小间隙

很奇怪的问题UICollectionView......

我有一个UIImageView下面的一个UICollectionView,我注意到有一些发线/ 1px清晰的线条出现在...的一些点collectionView出现在描述单元格下方......

第一

假设这是一个细胞问题,我已经调查过每一种我无法思考的方式.我把这个单元加倍,以说明问题发生在IndexPath 第1节和第6和第7项之间

即使这个单元格加倍...下面的分隔线单元格也是同一部分,section所以它绝对不是页脚或标题???

第二

我的flowLayout是

flowLayout.scrollDirection = .vertical
flowLayout.minimumInteritemSpacing = 0.0
flowLayout.minimumLineSpacing = 0.0
flowLayout.sectionInset = UIEdgeInsetsMake(0.0, 0.0, 0.0, 0.0)
flowLayout.headerReferenceSize = .zero
flowLayout.footerReferenceSize = .zero
Run Code Online (Sandbox Code Playgroud)

我做了collectionView红色的背景来突出问题......我不知道问题是什么.

查看层次结构

视图

更新

在某些地方更改flowLayout.minimumLineSpacing = 0.0-1.0"修复"问题...为什么这个值在所有单元格中都不会保持准确?并保持在0.0 ??

flowLayout.scrollDirection = .vertical
flowLayout.minimumInteritemSpacing = 0.0
flowLayout.minimumLineSpacing = -1.0
flowLayout.sectionInset = .zero
Run Code Online (Sandbox Code Playgroud)

ios uicollectionview swift

13
推荐指数
1
解决办法
473
查看次数

Swift中的数组与字典搜索性能

我想这可能是一个简单的答案,但我想我会快速检查......

假设我Ints在我的代码中的各个点添加一个数组,然后我想找到一个数组Int在将来是否包含某个数组.

var array = [Int]()

array.append(2)
array.append(4)
array.append(5)
array.append(7)

if array.contains(7) { print("There's a 7 alright") } 
Run Code Online (Sandbox Code Playgroud)

这比我创建字典更重要吗?

var dictionary = [Int:Int]()

dictionary[7] = 7

if dictionary[7] != nil { print("There's a value for key 7")}
Run Code Online (Sandbox Code Playgroud)

显然有这样的原因,你可能想要消除相同数字的重复条目的可能性......但我也可以用Set... 来做...我主要只是想知道dictionary[key]vs 的性能array.contains(value)

谢谢你的时间

arrays performance dictionary swift

7
推荐指数
1
解决办法
2275
查看次数

iOS 上的 App Store 链接参数/InstallReferrerReceiver 等效项

我知道在 Android 上您可以将参数添加referrer到 Play 商店 URL,该参数将在应用程序启动时传递到应用程序...

例如

http://market.android.com/details?id=your.application.package.name&referrer=my_referrer_finally_works_fine

iOS 上有类似的参数吗?我希望将我的用户链接到应用程序商店,并在启动后将他们启动到特定屏幕。

InstallReferrerReceiver 的链接

https://developers.google.com/android/reference/com/google/android/gms/tagmanager/InstallReferrerReceiver

从 Android Market 安装应用程序后获取引荐来源网址

app-store ios

6
推荐指数
1
解决办法
1993
查看次数

多个NSManagedObjectContexts - 防止竞争条件和死锁

我已经阅读了大量关于后台核心数据流程的博客,但我并没有更接近理解如何最好地管理许多BG核心数据任务,同时解雇并在未定义的时间通知主线程MOC.

我知道你应该有1 NSManagedObjectContextNSThread和那个通过订阅NSManagedObjectContextDidSaveNotification和使用[context performBlock我得到一些很好的异步任务完成.

也就是说,我正在异步运行很多任务,我不会100%知道什么时候会重叠,而且我已经观察到......的竞争条件......

  • BG MOC 1开始了它的任务
  • BG MOC 2开始了它的任务
  • BG MOC 2完成任务并发送保存通知
  • BG MOC 1完成任务,随后消除BG MOC 2s的变化

我的整体问题是如何解决多个MOC中的竞争条件?

  1. 如果正确的行为是每个线程有1个MOC ..我可以创建一个NSThread ivar并将我的所有Core Data工作到它上面吗?那样我可以让一个MOC与自己同步工作吗?

  2. 我读过一个NSLock可能是避免某些代码同时从多个线程访问的解决方案..但我不知道我应该锁定什么?保存上下文方法?持久存储(似乎使多线程毫无意义)?

  3. 最后,我可以标记/编号/命名我的MOC吗?这样,如果我知道其他任务正在运行,我可以存储通知并按照它们实例化的顺序处理它们,以确保没有数据被覆盖?

concurrency multithreading core-data nsmanagedobjectcontext ios

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

iOS11 以编程方式关闭`safeAreaInsets`

我希望我collectionView在 iOS 11 中的状态栏后面流血……但是我的内容collectionView总是20.0明显偏移safeAreaInsets

有没有办法在代码中关闭它并手动处理?好像找不到了。。。

提前致谢

iphone uitableview uiscrollview ios uicollectionview

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

Swift:检查 UIImage 可失败初始化

我想检查图像是否存在,但是在可失败的初始化中......我可以做到丑陋,但我真的想知道是否self == nil可能......

extension UIImage {

    convenience init?(_ name:String) {
        let image = UIImage(named:name)
        guard image != nil else { Assert("image \(name) missing yo"); return nil }
        self.init(named: name)
    }
}
Run Code Online (Sandbox Code Playgroud)

更干净但不编译

extension UIImage {

    convenience init?(_ name:String) {
        self.init(named: name)
        if self == nil { Assert("image \(name) missing yo") }
    }
}
Run Code Online (Sandbox Code Playgroud)

静态 func 不如 init 有趣

extension UIImage {

   static func with(_ name:String) -> UIImage? {
        let image = UIImage(named:name)
        if image == nil { Assert("image …
Run Code Online (Sandbox Code Playgroud)

uiimage swift

1
推荐指数
1
解决办法
111
查看次数