以编程方式更改tableview的大小

时间:2012-04-18 14:47:41

标签: iphone uitableview

我创建了一个像这样的表格视图

@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位置。但是如果我将样式更改为小组或平原它只是正常发生。

3 个答案:

答案 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.;