如何根据iPhone型号的高度更改UITableViewCell?

时间:2017-01-12 18:39:05

标签: ios iphone uitableview

我在我的应用程序中使用UITableViewController。这很好用,但我想知道如何为每台设备做一些小改动。 UITableViewCell高度并非在所有设备上都很棒。在iPhone 6/7和Plus型号上它非常适合,但在iPhone SE / 5和4上,行太大了。我知道Interface Builder有一个名为Vary of Traits的函数,但是当我选择例如iPhone 4并更改UITableViewCell的高度时,它也将应用于所有其他尺寸。这就是 - 不同设备的不同单元高度 - 可能,如果是,我如何根据不同的设备高度添加不同的单元高度?

2 个答案:

答案 0 :(得分:1)

UITableView有一个名为heightForRowAt indexPath:

的委托方法

在该方法中,您可以编写逻辑,将单元格高度定义为屏幕高度,tableView高度或您需要的任何内容的比例

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    return // screenHeight (or tableViewHeight) / someNumberThatFitsYourNeeds
}

答案 1 :(得分:0)

您可以在

中计算运行时单元格的高度
RxTextView.textChanges(edtOtp1).filter { it.length == 1 }.subscribe { edtOtp2.requestFocus() }
RxTextView.textChanges(edtOtp2).filter { it.length == 1 }.subscribe { edtOtp3.requestFocus() }
RxTextView.textChanges(edtOtp3).filter { it.length == 1 }.subscribe { edtOtp4.requestFocus() }
RxTextView.textChanges(edtOtp4).filter { it.length == 1 }.subscribe { context.hideKeyboard(view) }

例如: 让我们假设在视图高度700的Iphone 7上完美的单元格高度为70,因此您将编码为

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat{
}

因此,使用此方法,您的单元格将始终调整视图高度的10%