UIStackView

时间:2017-08-03 10:17:44

标签: ios autolayout uistackview

我一直在尝试使用3个自定义视图(PCSimpleDescriptionView)来实现视图(PCHorizo​​ntalAdjustableView)。

PCSimpleDescriptionView有一个垂直的UIStackView,在垂直的UIStackView中有2个标签,如下所示:

PCSimpleDescriptionView

PCHorizo​​ntalAdjustableView,它有一个水平UIStackView,用于显示3个PCSimpleDescriptionViews(添加颜色以突出显示3个视图)。

enter image description here

我得到的结果是:

Simulator iPhone5S

我理想的是3个大小相同的PCSimpleDescriptionViews显示可用空间中的标签。

示例项目已上传here

知道我该怎么做才能实现这个目标?

1 个答案:

答案 0 :(得分:1)

你的错误是- (void)setup方法

您可以像子视图 [[NSBundle mainBundle] loadNibNamed:@"PCHorizontalAdjustableView" owner:self options:nil]; [self addSubview:self.view];

一样从xib添加视图

您需要在- (void)layoutSubviews方法

中为此新子视图或控制框添加约束

将此功能添加到自定义视图的类(PCHorizo​​ntalAdjustableView,PCSimpleDescriptionView)`

- (void)layoutSubviews {
    [super layoutSubviews];

    self.view.frame = self.bounds;
    [self.view setNeedsLayout];
    [self.view layoutSubviews];
}

- (void)didMoveToWindow {
    [super didMoveToWindow];

    [self setNeedsLayout];
    [self layoutIfNeeded];
}`

修正代码project

Result