我一直在尝试使用3个自定义视图(PCSimpleDescriptionView)来实现视图(PCHorizontalAdjustableView)。
PCSimpleDescriptionView有一个垂直的UIStackView,在垂直的UIStackView中有2个标签,如下所示:
PCHorizontalAdjustableView,它有一个水平UIStackView,用于显示3个PCSimpleDescriptionViews(添加颜色以突出显示3个视图)。
我得到的结果是:
我理想的是3个大小相同的PCSimpleDescriptionViews显示可用空间中的标签。
示例项目已上传here
知道我该怎么做才能实现这个目标?
答案 0 :(得分:1)
你的错误是- (void)setup
方法
您可以像子视图
[[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