我正在尝试实现这样的模型。但是,我不确定我应该使用哪个视图控制器来做这样的事情?我尝试了UICollectionViewController
但是在每一行都放置了固定宽度的单元格。正如你在我的模型中看到的那样,在某些地方我有一个标签占据所有宽度,而在其他地方我有三个标签占据宽度。
答案 0 :(得分:1)
您可以使用简单的UIViewController
并在故事板中手动拖动标签。为了使矩形标签成为圆边标签,您可以创建所有这些标签的IBOutletCollection
并遍历数组,获取每个标签的图层并将角半径设置为适当的值。
e.g:
@property (strong, nonatomic) IBOutletCollection(UILabel) NSArray *customLabels;
由于customLabels是NSArray
所以它没有图层属性。你可以这样做:
for (UILabel *label in customLabels) {
label.layer.cornerRadius = 5.0;
}
答案 1 :(得分:0)
我坚持使用普通的基于UIViewController的控制器。
集合视图更适用于动态内容,如一堆照片。使用集合视图执行此操作将需要一些不必要的工作。
使用此布局,只需在故事板上手动放置对象,然后如果需要动态调整大小,就可以使用常规约束。这样就可以了。
答案 2 :(得分:0)
您可以使用UIViewController
并在Interface Builder中以编程方式正确设置按钮。
如果采用后一种方法,可以在视图控制器中执行类似的操作
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
// be sure to do this step or you won't see your button
button.frame = CGRectMake(...);
// Customize your button here
[self.view addSubview:button
如果您不熟悉,请参阅this documentation了解CGRectMake
的信息
编辑:我不确定这种方法是否会适当地处理方向更改。我怀疑如果你计算帧而不是硬编码值。不幸的是,我现在无法测试它。
再次修改:我没有意识到这是为RubyMotion
标记的。我不熟悉那个api所以我的代码示例可能不相关。