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.

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.)


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.


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.


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.


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!


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.


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.


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) ...;)

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.