UITableView具有不一致的宽度

时间:2012-10-23 09:13:23

标签: objective-c ios uitableview autoresizingmask

我有两个UITableView并且两者并排显示。在视图的最右侧还有一个UITextView

因此宽度为300px的第一个UITableView位于最左侧。第二个UITableView位于视图的中心。此表的宽度为150px。然后是UITextView,它具有动态宽度(因为不同方向的宽度不同),正如我之前提到的那样,它位于最右侧。

问题是2 UITableViews大小不同,具体取决于方向。

这是我初始化它们的方式:

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对此负责吗?如果是这样,我应该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

我有类似的问题。您可能需要发布更多代码,但应使用'UITableViewDataSource'方法:

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

这样您就可以将文本字段添加到单元格子视图中,然后设置自动调整大小。

[cell.contentView addSubview:textField];            
[cell setAutoresizesSubviews:YES];