我在Swift的iOS应用程序上工作,其中包含一个UIScrollView。滚动视图是"无限",根据需要在两侧自动生成新元素(子类UIViews)。有关Apple I的示例,请参阅here。
视图层次结构:
UIScrollView
|- viewContainer (UIView containing all the elements in the scrollview)
|- A
| |- UILabel(hi)
|
|- B
| |- UILabel(hello)
|
|- C
| |- UILabel(bonjour)
|
|- D
| |- UILabel(ciao)
|
|- E
| |- UILabel(greetings)
子视图A-E每个都包含带有一些文本的UILabel。当滚动视图水平移动时,会自动创建新的子视图(F,G等)。
我试图根据可见部分(用户实际可以看到的部分)对UILabels进行居中。
见上图:
所有这些都会在滚动过程中不断发生。
现在提问:
如何使标签以上述方式运行?到目前为止,我一直在尝试覆盖元素(A-E)中的layoutSubViews
。但是,我甚至无法提取用户可见的元素部分。 layer.visibleRect
似乎给了我整个矩形,甚至是当前屏幕外的部分。
任何帮助或指示都表示赞赏!