Ios 在UIStackView中具有相等宽度的自定义子视图
我一直在尝试使用3个自定义视图PCSimpleDescriptionView实现视图PCHorizontalAdjustableView PCSimpleDescriptionView有一个垂直UIStackView,在垂直UIStackView中有两个标签,如下所示: PCHorizontalAdjustableView,该视图具有用于显示3个PCSimpleDescriptionView的水平视图,添加了颜色以高亮显示3个视图 我得到的结果是: 理想情况下,我希望3个大小相同的PCSimpleDescriptionView在可用空间中显示标签 示例项目已上载 你知道我该怎么做才能做到这一点吗?你的错误是-voidsetup方法 您可以像添加子视图一样从xib添加视图 [[NSBundle mainBundle]loadNibNamed:@PCHorizontalAdjustableView所有者:自选项:nil]; [self addSubview:self.view] 您需要在-voidlayoutSubviews方法中将约束添加到此新的子视图或控制框 将此函数添加到自定义视图的类PCHorizontalAdjustableView、PCSimpleDescriptionView`Ios 在UIStackView中具有相等宽度的自定义子视图,ios,autolayout,uistackview,Ios,Autolayout,Uistackview,我一直在尝试使用3个自定义视图PCSimpleDescriptionView实现视图PCHorizontalAdjustableView PCSimpleDescriptionView有一个垂直UIStackView,在垂直UIStackView中有两个标签,如下所示: PCHorizontalAdjustableView,该视图具有用于显示3个PCSimpleDescriptionView的水平视图,添加了颜色以高亮显示3个视图 我得到的结果是: 理想情况下,我希望3个大小相同的PCSimpl
- (void)layoutSubviews {
[super layoutSubviews];
self.view.frame = self.bounds;
[self.view setNeedsLayout];
[self.view layoutSubviews];
}
- (void)didMoveToWindow {
[super didMoveToWindow];
[self setNeedsLayout];
[self layoutIfNeeded];
}`
固定代码
谢谢你的解决方案。我刚刚添加了self.view.frame=self.bounds;在LayoutSubView中解决此问题。似乎不需要其他方法。但当布局阶段发生时,是否应该自动设置正确的框架?您必须在addSubview函数之后添加约束。这将是一个自动解决方案。你在说什么约束?我需要理解为什么它不会自动发生。加载nib,然后约束过程应该接管->布局过程->显示过程。从xib加载附加视图->将加载的视图作为子视图添加到故事板的视图中。若您想从xib查看负载-您必须注意容器的框架