繁体   English   中英

以编程方式更改tableview的大小

[英]Changing the size of tableview programmatically

我已经创建了这样的表格视图

@interface RootViewController : UITableViewController{

}

现在,我想在显示之前更改tableview的来源和大小。

我该如何更改?

编辑:

- (id) initWithCoder:(NSCoder *)aDecoder
{
    self = [super initWithStyle:UITableViewStyleGrouped];
    self.tableView.frame=CGRectMake(50, 210, self.view.frame.size.width, self.view.frame.size.height);
    return self;
}

我现在面临的问题是我已经设置了以下代码。现在表格视图仍然从我的视图控制器(0,0)的顶部位置开始显示,而不是根据我的x,y位置显示。但是如果我将样式更改为group或plain它只是在正确发生。

看起来您已经创建了一个新的tableView而不是尝试移动InterfaceBuilder为您创建的现有tableView 但是由于尚未将新的tableView添加到视图层次结构中,因此无法看到新的tableView ,也没有删除原始的tableView ...

相反,只需移动原始的tableView。 在您的rootViewControllerviewWillAppear:方法中,执行以下操作:

-(void)viewWillAppear:(BOOL)animated
{
    self.tableView.frame = CGRectMake(0, 310, self.view.frame.size.width,200);
}

您可能只需要获取* tableView *属性即可

tableView.frame = xxxxxx;

但我认为您只需要一个包含UITableView的UIViewController

UITableView tableView = [[UITableView alloc] initWithFrame:(**the size you want**)];
[self.view addSubView:tableView];

如果您使用StoryBoard,并且设置了约束。 reloadData将重置您将框架设置为的内容。 相反,您应该修改约束。 您可以通过创建出口然后更改常数来实现。 例如,在下面,我将约束变量链接到顶部约束,并通过将常数设置为-60,将其向上移动。

@property (weak, nonatomic) IBOutlet NSLayoutConstraint *tableConstraint;

_tableConstraint.constant = -60.;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM