0

私は2つ持ってUITableViewおり、両方を並べて表示しています。UITextViewビューの一番右側にも があります。

したがって、UITableView幅が 300px の最初のものが最も左側にあります。2 つ目UITableViewは、ビューの中央にあります。このテーブルの幅は 150px です。次に、UITextView動的な幅を持つ (方向によって幅が異なるため)。これは、前に述べたように、最も右側にあります。

問題はUITableViews、向きによって 2 つのサイズが異なることです。

これは私がそれらを初期化する方法です:

UITableView *bookTable = [[UITableView alloc]initWithFrame:CGRectMake(0, 102, 300, self.view.bounds.size.height - 102)];
[bookTable setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleRightMargin];

UITableView *pageTable = [[UITableView alloc]initWithFrame:CGRectMake(bookTable.bounds.size.width, 102, 150, self.view.bounds.size.height - 102)];
[pageTable setAutoresizingMask:UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin];

UITextView *notesView = [[UITextView alloc]initWithFrame:CGRectMake((bookTable.bounds.size.width + pageTable.bounds.size.width), 102, self.view.bounds.size.width - (bookTable.bounds.size.width + pageTable.bounds.size.width), self.view.bounds.size.height - 102)];
[notesView setAutoresizingMask:UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleLeftMargin];

ご覧のとおり、autoresizingMaskそれぞれに を設定しました。何が起こっているのかというと、bookTable の縦の幅は 300px ですが、横にすると幅が 400px になります。

これはautoresizingMask責任者ですか?もしそうなら、これをどのように修正すればよいですか?

4

1 に答える 1

0

私はこのような同様の問題を抱えていました。さらにコードを投稿する必要があるかもしれませんが、「UITableViewDataSource」メソッドを使用する必要があります。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

このようにして、テキストフィールドをセルのサブビューに追加してから、自動サイズ変更を設定できます。

[cell.contentView addSubview:textField];            
[cell setAutoresizesSubviews:YES]; 
于 2012-10-23T10:00:35.717 に答える