UITableView 作为 inputAccessoryView 的高度为零

Posted

技术标签:

【中文标题】UITableView 作为 inputAccessoryView 的高度为零【英文标题】:UITableView as inputAccessoryView has height of zero 【发布时间】:2015-03-20 03:02:37 【问题描述】:

我有两个表格视图,在我的项目中用作输入附件视图。一个是以编程方式创建的,并且显示得非常好。第二个是自定义表格视图,其中包含在情节提要中制作的自定义单元格,并存储为视图控制器的属性作为强引用。

@property UITableView *firstTable; @property (strong, nonatomic) IBOutlet UITableView *secondTable;

它们都是在viewDidLoad中发起的,如下:

self.firstTable = [[UITableView alloc] initWithFrame:
                        CGRectMake(0, 0, self.view.bounds.size.width, 100) style:UITableViewStylePlain];
self.firstTable.delegate = self;
self.firstTable.dataSource = self;
self.firstTable.scrollEnabled = YES;
self.firstTable.rowHeight = 30;
self.firstTable.backgroundColor = [[SwagCommonFunctions alloc] colorWithHexString:@"f4ecea"];

self.secondTable.frame = CGRectMake(0, 0, self.view.bounds.size.width, 100);

它们在另一个函数中被设置为输入附件视图

[textView setInputAccessoryView:self.firstTableView];
    [textView reloadInputViews];

[textView setInputAccessoryView:self.secondTableView];
    [textView reloadInputViews];

firstTable 完美运行。 secondTable 永远不会加载,因为在 cellForRowAtIndexPath 时帧高度为零。如果在 numberOfRowsInSection 中手动将框架高度设置为 100(宽度为全屏),原点为 (0,0),则 secondTable 会按预期显示正确的数据,但框架会遮盖整个键盘,而不是停留在正常的 inputAccessoryView地点。

如何设置 secondTable 的框架以使其正常运行?

【问题讨论】:

【参考方案1】:
self.secondTable.autoresizingMask = UIViewAutoresizingNone;

【讨论】:

以上是关于UITableView 作为 inputAccessoryView 的高度为零的主要内容,如果未能解决你的问题,请参考以下文章

将 UITableView 作为容器视图嵌入到 UIViewController 中

将 NSOperationQueue 作为数据源发送到 UITableView

UITableView 静态单元格作为子视图?

UICollectionView 作为 UITableView 子视图流布局循环

当 iCarousel 包含 UITableView 作为子视图时无法滑动

UITableView 作为子视图?