我创建了一个像这样的表格视图
@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位置。但是如果我将样式更改为小组或平原它只是正常发生。
答案 0 :(得分:6)
看起来你已经创建了一个新的tableView
,而不是试图移动InterfaceBuilder为你创建的现有的那个。但是,由于您尚未将新的tableView
添加到视图层次结构中,因此无法看到新的rootViewController
,并且您尚未删除原始版本...
相反,只需移动原始的tableView即可。在viewWillAppear:
的{{1}}方法中,执行以下操作:
-(void)viewWillAppear:(BOOL)animated
{
self.tableView.frame = CGRectMake(0, 310, self.view.frame.size.width,200);
}
答案 1 :(得分:3)
您可能只是获取属性* tableView * 来执行此操作
tableView.frame = xxxxxx;
但我认为你只需要一个包含UITableView的UIViewController
UITableView tableView = [[UITableView alloc] initWithFrame:(**the size you want**)];
[self.view addSubView:tableView];
答案 2 :(得分:1)
如果您使用StoryBoard并且设置了约束。无论您将帧设置为什么,reloadData都将重置。相反,您应该修改约束。您可以通过创建插座然后更改常量来完成此操作。例如,下面我将约束变量链接到顶部约束,并通过将常量设置为-60,将其向上移动。
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *tableConstraint;
_tableConstraint.constant = -60.;