ios - UITableViewCell 高度基于可用屏幕空间

标签 ios objective-c uitableview uikit

我想为我的 UITableView 创建一个布局,将其分为 2 个部分: 第一部分有 3 行标准高度 (44px), 第二部分有一行,其中包含一个完全填满此单元格的 UITextView。棘手的部分是我想将此 textView 的单元格行的大小调整为可见 tableview 区域的高度,以便 TextView 占据屏幕上的剩余 View .我怎么知道,在

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

剩下的高度是什么样子的?我之前已经根据可用的两种 iPhone 屏幕尺寸(480 和 568)进行了硬编码假设,但是对于新的 iPhone6 和 iPhone 6+ 屏幕,我不想使用任何假设值来计算这个。

最佳答案

您已经在 tableView.bounds.size.height 处获得了 TableView 的高度,您只需要从中减去第一部分的高度。所以

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (indexPath.section == 0)
    {
        return 44;
    }

    return tableView.bounds.size.height - 44 * 3;
}

对于 header ,根据它们的行为方式,您可以使用 rectForHeaderInSection:rectForSection: 来获取高度

关于ios - UITableViewCell 高度基于可用屏幕空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25883622/

相关文章:

ios - 如何将菜单链接到 ViewController?

iphone - UIView block 动画转换与显示/隐藏键盘上的动画内容

javascript - 检测浏览器在网页中是否有键盘/箭头键

ios - 使用NSUserDefaults时,格式字符串未使用Objective-C iOS 10数据参数

ios - 有没有办法使用相同的 cellForRowAtIndexPath 函数填充两个或多个不同的 UITableView?

xcode - 将数据从 TableViewCell 标签传递到 ViewController 时遇到问题

ios - 在 Swift 上从 Firebase 检索数据需要很长时间

ios - 应用程序未运行时不会收到远程通知

uitableview - Xcode 5 - 静态 TableView 不会出现在模拟器上

ipad - 为什么表格单元格的文本上有背景,但仅在 iPad 上?