我应该使用哪个视图控制器?

时间:2014-04-07 19:06:04

标签: ios iphone objective-c uiviewcontroller rubymotion

我正在尝试实现这样的模型。但是,我不确定我应该使用哪个视图控制器来做这样的事情?我尝试了UICollectionViewController但是在每一行都放置了固定宽度的单元格。正如你在我的模型中看到的那样,在某些地方我有一个标签占据所有宽度,而在其他地方我有三个标签占据宽度。

enter image description here

3 个答案:

答案 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所以我的代码示例可能不相关。