PCSimpleDescriptionView

PCSimpleDescriptionView

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

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

ios - UIStackView中具有相同宽度的自定义 subview-LMLPHP

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

ios - UIStackView中具有相同宽度的自定义 subview-LMLPHP

我得到的结果是这样的:

ios - UIStackView中具有相同宽度的自定义 subview-LMLPHP

我理想地想要的是3个大小相等的PCSimpleDescriptionViews,它们在可用空间中显示标签。

示例项目已上载here

任何想法我应该怎么做才能做到这一点?

最佳答案

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

您可以从xib中添加视图,例如子视图 [[NSBundle mainBundle] loadNibNamed:@"PCHorizontalAdjustableView" owner:self options:nil]; [self addSubview:self.view];

您需要在- (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

ios - UIStackView中具有相同宽度的自定义 subview-LMLPHP

09-18 03:55