iOS 9 引入了非常酷的 UIStackView,UIStackView 可以用来轻松创建简单和复杂的布局。
正如预期的那样,UIStackView
仅适用于 iOS 9 及以上。本项目尝试将 StackView 返回到 iOS 7 及以上。
OAStackView
的目标是复制 UIStackView
中的所有功能
要运行示例项目,请克隆仓库,然后首先从 Example 目录中运行 pod install
。
由于 OAStackView
模拟了 UIStackView
的接口,因此 OAStackView
的使用方法类似于 UIStackView
。
OAStackView
可以从 Interface builder 或代码中使用。
将一个 UIView 拖到您的视图控制器中,并向其中添加一些视图。
将类更改为 OAStackView
(可选)更改堆叠轴(设置轴值为 0 为水平或 1 为垂直),间距、对齐或分布。
运行项目!
要从代码中使用 OAStackView
,请参阅 UIStackView 获取适当的文档。
以下是一个关于其使用的快速示例:
创建要堆叠的视图
UILabel *l1 = [[UILabel alloc] init];
l1.text = @"Label 1";
UILabel *l2 = [[UILabel alloc] init];
l2.text = @"Label 2";
创建堆叠视图,传递视图数组
OAStackView *stackView = [[OAStackView alloc] initWithArrangedSubviews:@[l1, l2]];
stackView.translatesAutoresizingMaskIntoConstraints = NO;
将堆叠视图添加到 self.view
[self.view addSubview:stackView];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-30-[stackView]"
options:0
metrics:0
views:NSDictionaryOfVariableBindings(stackView)]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-10-[stackView]"
options:0
metrics:0
views:NSDictionaryOfVariableBindings(stackView)]];
OAStackView 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中
pod "OAStackView"
由于 OAStackView
是从反向工程 UIStackView
构建的,并且由于我打算继续更新和重构 OAStackView
,测试是前进的要求之一。
以下是一些 可读的文本子序列(使用 specipy 生成)。
欢迎所有形式的贡献,如果您觉得这个项目有用,并且想贡献,那么请这样做。
OAStackView
实现了大部分UIStackView
的功能,除了以下内容
[ ] baselineRelativeArrangement
@property(nonatomic,getter=isBaselineRelativeArrangement) BOOL baselineRelativeArrangement;
[x] layoutMarginsRelativeArrangement
@property(nonatomic,getter=isLayoutMarginsRelativeArrangement) BOOL layoutMarginsRelativeArrangement;
UIStackViewDistribution
也只部分实现了(仍有3个元素没有实现)
UIStackViewDistributionFill
UIStackViewDistributionFillEqually
UIStackViewDistributionFillProportionally
UIStackViewDistributionEqualSpacing
UIStackViewDistributionEqualCentering
请参考UIStackView获取正确的文档。
以下是未来版本中想要包含的内容
UIStackView
功能Omar Abdelhafith, [email protected]
OAStackView受MIT许可证的约束。有关更多信息,请参阅LICENSE文件。