[英]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。 在您的rootViewController
的viewWillAppear:
方法中,执行以下操作:
-(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.