我一直在尝试通过3个自定义视图(PCSimpleDescriptionView)实现一个视图(PCHorizontalAdjustableView)。
PCSimpleDescriptionView具有一个垂直的UIStackView,在垂直的UIStackView内具有2个标签,如下所示:
PCHorizontalAdjustableView具有一个水平UIStackView,用于显示3个PCSimpleDescriptionViews(添加了用于突出显示3个视图的颜色)。
我得到的结果是这样的:
我理想地想要的是3个大小相等的PCSimpleDescriptionViews,它们在可用空间中显示标签。
示例项目已上载here
任何想法我应该怎么做才能做到这一点?
最佳答案
您的错误是- (void)setup
方法
您可以从xib中添加视图,例如子视图 [[NSBundle mainBundle] loadNibNamed:@"PCHorizontalAdjustableView" owner:self options:nil]; [self addSubview:self.view];
您需要在- (void)layoutSubviews
方法中向此新子视图或控制框添加约束
将此功能添加到自定义视图的类中(PCHorizontalAdjustableView,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