Berapa ketinggian standar UITableViewCell?

166

Saya pikir informasi ini akan lebih mudah ditemukan :-)

Berapa ketinggian standar sebuah UITableViewCell? Sepertinya 44 piksel, tapi saya lebih suka memastikannya.

rampok
sumber

Jawaban:

361

Ini 44 piksel. Pastinya. Saya tidak akan pernah melupakan nomor itu.

44px juga merupakan ketinggian default untuk UIToolbar dan UINavigationBar. (Keduanya beralih ke 32px saat autorotated ke orientasi lanskap.)

Marco
sumber
61
Haha, "Saya tidak akan pernah melupakan angka itu" terdengar tidak menyenangkan ;-)
Rob
4
@antony: view.bounds.size.height
samvermette
4
@ MikeikeWard: Anda mungkin sudah mengetahui hal ini, tetapi pemisah 1px termasuk dalam ketinggian. Ini sebenarnya mencakup isi sel terbanyak.
Ben S
44
Secara teknis, ini 44 poin. Itu akan keluar ke 88px pada layar Retina. Tidak membelah rambut atau apa pun.
Ben Mosher
23
tableView.rowHeight
Hunter
27

Jika Anda menginginkan dimensi default pada perangkat apa pun yang dapat Anda gunakan: UITableViewAutomaticDimension

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

    return UITableViewAutomaticDimension;
}

Meskipun 44 piksel saat ini merupakan default, ini adalah metode yang berguna jika aplikasi Anda mengandalkan penetapan nilai default.

simon_smiley
sumber
3
Sudah berganti nama menjadi UITableView.automaticDimensionsdi Swift 4
Bot
Ini hanya berfungsi jika yang Anda inginkan adalah ketinggian default. Jika Anda benar-benar menginginkan beberapa kelipatan dari tinggi default, maka nilai yang dikembalikan oleh ini bukan tinggi sebenarnya. Apple telah menyembunyikan ketinggian titik sebenarnya di belakang angka ajaib ini (yang kebetulan -1).
PKCLsoft
16

Kapan style = UITableViewStyleGrouped, ketinggian default sel atas & bawah sebenarnya 45.0f(bukan 44.0f). Dan, jika tabel yang dikelompokkan hanya satu baris maka tinggi selnya 46.0f.

ma11hew28
sumber
apakah itu termasuk pemisah?
lhunath
10

Jika Anda ingin menghitung ini dengan cepat, hanya mengalokasikan sel tabel dummy dan membacakan tingginya

UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];
int height = cell.frame.size.height ;

Dengan cara ini Anda mempertahankan terhadap perubahan dalam versi iOS masa depan, meskipun saya kira itu tidak mungkin.

brainjam
sumber
Ini bermasalah dengan pembayaran otomatis
MobileMon
27
Semuanya bermasalah dengan pembayaran otomatis.
devios1
bagaimana bermasalah, tepatnya?
AndrewR
3

"Ketika style = UITableViewStyleGrouped, ketinggian default sel atas & bawah sebenarnya adalah 45.0f (bukan 44.0f). Dan, jika tabel yang dikelompokkan hanya satu baris, tinggi sel akan 46.0f." Itu salah !! 44.0f sebenarnya! Saya hanya mengujinya!

jujur
sumber
2

Kedengarannya benar. Tetapi untuk memastikan Anda dapat memuat pembangun Antarmuka, masukkan UITableViewCell ke proyek kemudian periksa properti ukuran di jendela Inspektur. Saya tidak membawa MacBook dengan saya sekarang jadi saya tidak bisa memeriksa. Tetapi jika Anda tidak mendapatkan jawaban yang lebih baik dari seseorang, itu adalah bagaimana Anda dapat memeriksa sendiri.

Ziltoid
sumber
Ah, oke, dari situlah saya awalnya mendapatkan 44.
Rob
2

Di Swift 4 dan Swift 5 cukup gunakan:

UITableView.automaticDimension

Menggunakan 44px tidak akan cukup karena akan bervariasi dengan kepadatan piksel layar yang berbeda.

Dan Bray
sumber
0

Di iOS 12 ketinggian default pada perangkat seperti iPhone X (X, XS, XS Max, XR) adalah 49pt .

Perangkat lain di iOS 12 masih memiliki 44pt sebagai default. Ini perbedaan yang halus, tetapi rasanya seperti peningkatan yang baik dalam perbandingan langsung.

Jika Anda tidak akan mempercayai saya, ukur sendiri dalam tangkapan layar ini (jangan lupa bagi dengan 3) ...;)

fl034
sumber