2017.12.04-2017.12.10 个人踩坑总结

作者: 郑一一一一 | 来源:发表于2017-12-11 21:33 被阅读67次

前言

预备以后每星期写一篇来总结一下本周的经验总结。本篇是第一篇。

1.如何在 xib 中的 UIScrollView 中放 UIView

设置好 UIScrollView 的Top、Leading、Trailing、Bottom 约束,并放入一个 UIView,并设置其Top、Leading、Trailing、Bottom 约束,会发现仍然会有约束报错。这是因为 superview 在给 subview 约束时,不是以 superview 的 size 为依据,而是以 superview 的 contentSize 为依据的。此时在 xib 中无法确定 UIScrollView 的 contentSize。

解决方法:额外再添加 subview 的 height、width 的约束

2.添加符号断点来解决约束冲突的问题

有时候,开发人员会利用如 Masonry 等第三方库来实现布局,有时候出现冲突,如何快速查找冲突点呢?

解决办法:添加 Symblic Breakpoint “UIViewAlertForUnsatisfiableConstraints”

3.添加符号断点来查找UICollectionView layout 报错的问题

有时候虽然有报错,仍能正常布局。但这会给代码带来后期维护上的隐患。添加符号断点,可以强迫去修正 layout。

解决办法:添加 Symblic Breakpoint “UICollectionViewFlowLayoutBreakForInvalidSizes”

4.UICollectionView UI 重用问题

有时候,我们不得不利用 UICollectionView 来对复杂 UI 进行布局。但 UICollectionView 的无论是 cell 还是 header、footer 都会运用到重用机制。有一些确定只需要一份的 UI,会因为重用机制,创建好几份,占用内存。

提供一种思路:将 UICollectionView 的 cell、header、footer 仅仅作为一个容器,本身不创建额外UI。由我们自己负责创建 UI,然后每次在 UICollectionView 的代理方法中,将 UI 添加上去。

5.一种少见的定时器循环引用

以下的代码是在公司别人写的代码。

- (void)timerAction {
    /* 做一些定时器要做的事情 */
    
    // 重新延时执行
    [self performSelector:@selector(timerAction) withObject:nil afterDelay:3];
}

以上面实现的定时执行功能,同样会造成循环引用。这是因为 performSelector 这段代码会在当前线程的 runloop 里开启一个定时器来执行这个 selector。定时器和 self 会形成循环引用,造成内存泄漏。

解决办法:在适当时机,调用 [NSObject cancelPreviousPerformRequestsWithTarget:self]; 来停止定时器。

相关文章

  • 2017.12.04-2017.12.10 个人踩坑总结

    前言 预备以后每星期写一篇来总结一下本周的经验总结。本篇是第一篇。 1.如何在 xib 中的 UIScrollVi...

  • Flutter 开发记录

    Flutter 开发踩坑记录(干货总结)

  • 个人博客标签分类

    【小结】零碎的小结 【踩坑记录】报错等记录,防止再度踩坑 【总结】比较完整的总结 【想法】自己的一些想法和推论 【...

  • 509/1000:在jenkins中拉取git仓库代码的踩坑

    最近两天,在做jenkins中拉取git仓库代码,踩了不少坑,在对象的协助下,顺利出坑,现在总结踩坑经历。首先,最...

  • 踩坑总结

    IE的margin-top和chrome的margin-top不一致,为了兼容IE8,有的人采用在CSS样式后加上...

  • 踩坑总结

    掐指一算,上任产品半年多了,期间基本属于没人管的状态,独立背2个锅,产品设计+项目管理+小团队,基本上各种各样的坑...

  • 踩坑总结

    1、数组去重使用 distinctUnionOfObjects.self 去重后会吧可变数组变为不可变数组,...

  • 个人踩坑

    .net Core 2.1 后 Session保存,新页面获取不到值 [关于Adapter无法更新数据](http...

  • 装饰行业从业23年|不想你踩坑

    装饰行业从业23年 | 不想你踩坑 | 总结业主们踩过的坑 现在很多人在买了房子以后, 都比较关注装修问题, 毕竟...

  • http的KeepAlive详解

    KeepAlive既熟悉又陌生,踩过坑的同学都知道痛。一线运维工程师踩坑之后对于KeepAlive的总结,你不应该...

网友评论

    本文标题:2017.12.04-2017.12.10 个人踩坑总结

    本文链接:https://www.haomeiwen.com/subject/aoajixtx.html