Zuerst eine Erweiterung erstellen zu erkennen, welche iPhone läuft die App:
extension UIDevice {
var iPhone: Bool {
return UIDevice().userInterfaceIdiom == .phone
}
enum ScreenType {
case iPhone4
case iPhone5
case iPhone6
case iPhone6Plus
case unknown
}
var screenType: ScreenType {
guard iPhone else { return .unknown }
switch UIScreen.main.nativeBounds.height {
case 960:
return .iPhone4
case 1136:
return .iPhone5
case 1334:
return .iPhone6
case 2208:
return .iPhone6Plus
default:
return .unknown
}
}
}
Dann in yo ur-Controller verbinden die Tableview delegieren, wenn Sie es noch nicht getan:
override func viewDidLoad() {
super.viewDidLoad()
tableView.delegate = self
tableView.dataSource = self
}
Implementieren Methode delegieren wie so Höhe von Zelltyp abhängig von iphone anzupassen:
extension YourViewController: UITableViewDelegate {
override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
switch UIDevice().screenType {
case .iPhone4:
return 40
default:
return 60
}
}
}
verwenden Sie einen UITableViewController oder ein UIViewController mit einem tableView, den du da selbst hingestellt hast? – Ocunidee
@Ocunidee Ich verwende eine Tabellenansicht, die ich in mich selbst gesetzt habe. – askaale
können Sie ein Bild der Einschränkungen anzeigen, die Sie in das Storyboard eingegeben haben, oder, wenn Sie Code erstellt haben, die Snippets? – Ocunidee