【发布时间】:2016-03-19 21:05:33
【问题描述】:
我对@987654323@ 故事板和动态显示视图有疑问。
我的故事板中有 3 个垂直对齐的视图,每个视图都通过上下关系与约束相互链接
但是在运行时我想隐藏第二个视图并用第三个视图替换它的位置(这是一个tableview)并填充第二个和第三个位置我试图扩展@的高度987654325@。
但是我不能成功。我已经尝试了很多东西,但我得到的最接近的是将第三个视图转换为第二个位置,但高度保持不变
我的最新代码在下面
if (status) {
self.filterView.hidden = NO;
self.contentTable.frame = contentTableFrame;
} else {
self.filterView.hidden = YES;
CGFloat predictedHeight = self.contentTable.frame.size.height+(self.contentTableFrame.origin.y-self.filterView.frame.origin.y);
self.contentTable.transform = CGAffineTransformMakeTranslation(0, self.filterView.frame.origin.y-self.contentTable.frame.origin.y);
for (NSLayoutConstraint *constraint in self.contentTable.constraints) {
if (constraint.firstAttribute == NSLayoutAttributeHeight) {
constraint.constant = predictedHeight;
}
}
}
您还可以找到第三个视图的约束的屏幕截图。我应该怎么做才能解决这个问题?有人知道吗?
我也有这个问题的另一个解决方案。但我也有另一个问题。 当我执行下面的代码行时,我的第三个视图移动到第二个视图的位置,但它的高度保持不变,所以在页面底部它恰好看起来是一个空白区域。
self.contentTable.transform = CGAffineTransformMakeTranslation(0, self.filterView.frame.origin.y-self.contentTable.frame.origin.y);
为了解决这个问题,我尝试改变它的高度(使用 .frame = CGRectMake(.....) ) 但它没有用。然后我尝试缩放第三个视图(这是一个表格视图)并且它成功了,但是因为我已经缩放了它,表格视图内的所有单元格也被缩放并且表格的视觉外观已经损坏.所以我无法找到解决该问题的方法。 这似乎是一个挑战。
谢谢
【问题讨论】:
-
为第二个视图的高度约束创建一个 IBOutlet 并在您不希望它显示时将其赋值为 0。第三个视图将自动填充剩余区域。
-
如果你不担心部署iOS版本你可以使用Stackview
标签: ios objective-c xcode xcode-storyboard