【问题标题】:UITableView has inconsistent widthUITableView 宽度不一致
【发布时间】:2012-10-23 18:00:35
【问题描述】:

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

所以第一个宽度为 300px 的UITableView 位于最左侧。第二个UITableView 位于视图的中心。该表格的宽度为 150 像素。然后是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 对此负责吗?如果是这样,我应该如何解决这个问题?

【问题讨论】:

    标签: objective-c ios uitableview autoresizingmask


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2013-11-27
      • 2019-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多