1

このようなテーブルビューを作成しました

@interface RootViewController : UITableViewController{

}

表示する前に、テーブルビューの原点とサイズを変更したいと思います。

どうすれば変更できますか?

編集 :

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

現在直面している問題は、次のコードを設定したことです。現在、テーブルビューは、x、y 位置に従ってではなく、ビューコントローラー (0,0) の一番上の位置から表示されています。しかし、スタイルをグループまたはプレーンに変更するとそれは正しく起こっているだけです。

4

3 に答える 3

6

tableViewInterfaceBuilder が作成した既存のものを移動しようとするのではなく、新しいものを作成したようです。しかしtableView、ビュー階層に新しいものを追加していないため、新しいものを見ることができず、元のものを削除していません...

代わりに、元の tableView を移動するだけです。rootViewControllerviewWillAppear:メソッドで、次の操作を行います。

-(void)viewWillAppear:(BOOL)animated
{
    self.tableView.frame = CGRectMake(0, 310, self.view.frame.size.width,200);
}
于 2012-04-18T15:22:21.630 に答える
3

これを行うには* tableView *プロパティを取得するだけです

tableView.frame = xxxxxx;

しかし、UIViewControllerにはUITableViewが含まれているだけでよいと思います

UITableView tableView = [[UITableView alloc] initWithFrame:(**the size you want**)];
[self.view addSubView:tableView];
于 2012-04-18T14:51:44.210 に答える
1

StoryBoard を使用していて、制約が設定されている場合。reloadData は、フレームに設定したものをリセットします。代わりに、制約を変更する必要があります。これを行うには、アウトレットを作成してから定数を変更します。たとえば、以下では、制約変数を一番上の制約にリンクし、定数を -60 に設定することで上に移動します。

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

_tableConstraint.constant = -60.;
于 2014-06-24T18:00:02.030 に答える