POViewFrameBuilder 1.0.2

POViewFrameBuilder 1.0.2

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最后发布2014年12月

Sebastian Rehnby 维护。



  • Sebastian Rehnby

POViewFrameBuilder 的目的是提供一个简单的方法,以编程方式排列 UIViews,同时保持代码的语义和可读性。它允许您通过链式一系列可读的布局方法来修改视图的 frame。它减少了 frame 计算代码的数量,并保持布局意图明确。这是您平均布局Subviews、动画块等的实用工具。

它绝对不完整,而是包含了一些我在各种场合下意外需要的方法。欢迎反馈和拉取请求。

使用方法

以下两个示例简要介绍了如何使用 POViewFrameBuilder。只需将 UIView+POViewFrameBuilder.h 类别包含到您想使用它的位置,然后您可以通过访问 po_frameBuilder 便利属性来为任何 UIView 子类实例化 frame 建造器。

调整视图大小

[view.po_frameBuilder setWidth:100.0f height:40.0f];

将视图移动到其父视图中心

[view.po_frameBuilder centerInSuperview];

您可以将这些方法结合使用,根据您的喜好

[[view.po_frameBuilder setWidth:100.0f height:40.0f] centerHorizontallyInSuperview];

演示

DemoApp 项目展示了如何在使用动画块中使用 POViewFrameBuilder。需要注意的是,默认情况下,automaticallyCommitChanges 属性设置为 YES。这意味着在链式中的每个修改方法之后都会提交 frame 更改。然而,在动画中多次更改 frame 不起作用,并且视图会跳来跳去。为了避免这种情况,通过调用 disableAutoCommit 开始方法链,并通过调用 commit 方法完成一系列更改,该方法将更新视图的 frame。

[[[[view.po_frameBuilder disableAutoCommit] setWidth:100.0f height:40.0f] centerHorizontallyInSuperview] commit];

感谢 @rsobik,现在也有一种更简洁、更易于阅读的方式来创建这些事务

[self.squareView.po_frameBuilder update:^(POViewFrameBuilder *builder) {
    [builder setWidth:100.0f height:40.0f];
    [builder centerHorizontallyInSuperview];
}];