我遇到有关Xcode
故事板的问题,并动态显示了观看次数。
我在故事板中有3个垂直对齐的视图,每个视图都是相互关联的,具有约束的上下关系
然而,在运行时我想要隐藏第二个视图并用3&#rd视图(这是一个tableview
)替换它的位置并填充第二和第三个地方我尝试延长tableview
的高度。
但是我不能成功。我尝试了很多东西,但最接近的是将第3个视图转换为第2个但是高度保持不变
我的最新代码位于下方
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;
}
}
}
您还可以找到第3个视图约束的屏幕截图。我该怎么做才能解决这个问题?有没有人对它有任何想法?
我还有另一个解决这个问题的方法。但我也有另一个问题。 当我执行下面的代码行时,我的第三个视图移动到第二个视图的位置,但它的高度保持不变,所以在页面底部它似乎是一个空白区域。
self.contentTable.transform = CGAffineTransformMakeTranslation(0, self.filterView.frame.origin.y-self.contentTable.frame.origin.y);
为了解决这个问题,我试图改变它的高度(使用.frame = CGRectMake(.....)) 但是它没有用。然后我试图扩展第三个视图(这是一个tableview)并且它成功但是因为我已经缩放了它,所以桌面视图中的所有单元格也都缩放了桌子的外观已经坏了。所以我无法找到解决这个问题的方法。 这似乎是一个挑战。
由于
答案 0 :(得分:0)
您可以隐藏filterview,但不能通过tableview替换它。 如果你想用表视图替换它。你需要使用方法BringSubviewToFront for That Tableview.it将把tablview带到前面并将filterview设置为back为ui隐藏。
答案 1 :(得分:0)
对不起,这是在Objective-c。 我得到了TableView(Storyboard)的最高限制。当我隐藏topView时,我得到topView的高度并更改顶部约束常量。你可以在@IBAction中看到它。最后,tableView被拉伸并占用topView的剩余空间。那是你在看什么?
<强> ViewController.h 强>
push
<强> ViewController.m 强>
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController<UITableViewDataSource, UITableViewDelegate>
@property (weak, nonatomic) IBOutlet UIView *topView;
@property (weak, nonatomic) IBOutlet UITableView *tableView;
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *topTableViewConstraint;
- (IBAction)pushTest:(id)sender;
@end