为什么我使用Texture构建我的应用程序(以及为什么也应该如此)

我已经在我的应用程序中使用了很长一段时间(Facebook,Pinterest和Buffer等巨头也使用过Texture)。 这是一个基于UIKit构建的iOS框架,即使最复杂的用户界面也可以保持平滑和响应。

在本教程中,我想分享我在Texture方面的经验以及所有有关如何充分利用此工具的有用技巧。 我们将一起在Texture中实现几个接口,并查看其实际工作方式。

起源

当他们构建Facebook Paper应用程序时,纹理起源于Facebook内部。 作为该项目的首席工程师之一,斯科特·古德森(Scott Goodson)最初从事第一批iPhone构建应用,例如计算器,股票,时钟等。

在理想的世界中,我们希望药丸可以增加数量而无需求助于近似值(例如在指标中显示999+)。 同时,我们希望支持诸如动态类型之类的辅助功能。 解决此问题的最明显方法是使用水平UIStackView并将标签和药丸保留在堆栈中。

不过有一个问题!

在这种情况下, UIStackView 。此外,您还必须设置contentHuggingPriority和contentCompressionResistance并使用其他属性(在读完这句话之后,我需要喝杯咖啡)。 摆弄所有这些属性并弄清楚它们将很容易使我花费一个下午的时间。 相比之下,让我们看一下Texture的实现:

另外,Texture在`ASTableNode`上有一个很好的`inverted`属性,对于聊天/消息应用程序来说真的很方便。 基本上可以确保单元格是反向的,因此它们从底部开始!