gpt4 book ai didi

ios - 具有动态 View 的 Xcode Storyboard

转载 作者:行者123 更新时间:2023-12-01 22:31:05 25 4
gpt4 key购买 nike

我有一个关于 Xcode 的问题 Storyboard和动态显示的 View 。

我的 Storyboard中有 3 个垂直对齐的 View ,每个 View 都通过上下关系与约束相互链接

但是在运行时我想隐藏第二个 View 并用第三个 View 替换它的位置(这是一个 tableview )并填充第二个和第三个位置我试图扩展 tableview 的高度.
但是我不能成功。我已经尝试了很多东西,但我得到的最接近的是将第三个 View 转换为第二个位置,但高度保持不变

我的最新代码在下面

    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;
}

}

}

您还可以找到第三个 View 的约束的屏幕截图。我应该怎么做才能解决这个问题?有人对此有任何想法吗?

enter image description here

我也有这个问题的另一种解决方案。但我对此也有另一个问题。
当我执行下面的代码行时,我的第三个 View 移动到第二个 View 的位置,但它的高度保持不变,因此在页面底部它恰好看起来是一个空白区域。
        self.contentTable.transform = CGAffineTransformMakeTranslation(0,       self.filterView.frame.origin.y-self.contentTable.frame.origin.y);

为了解决这个问题,我试图改变它的高度(使用 .frame = CGRectMake(.....) )
但它没有用。然后我尝试缩放第三个 View (这是一个表格 View )并且它成功了,但是因为我已经缩放了它,表格 View 中的所有单元格也被缩放并且表格的视觉外观已经损坏.所以我无法找到解决这个问题的方法。
这似乎是一个挑战。

谢谢

最佳答案

抱歉,它在objective-c中。
我从 TableView( Storyboard)中获得了最高的约束。当我隐藏 topView 时,我得到了 topView 的高度并更改了顶部约束常量。您可以在@IBAction 中看到它。最后,tableView 被拉伸(stretch)并占用了 topView 留下的空间。那是你在找的吗?

ViewController.h

#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

ViewController.m
- (IBAction)pushTest:(id)sender {
if (self.topView.hidden) {
self.topTableViewConstraint.constant = 0;
}else{
self.topTableViewConstraint.constant = -self.topView.bounds.size.height;
}
self.topView.hidden = !self.topView.hidden;
}

关于ios - 具有动态 View 的 Xcode Storyboard,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34266103/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com