UITableViewCell'in varsayılan yüksekliği nedir?


166

Bu bilgiyi bulmanın daha kolay olacağını düşündüm :-)

UITableViewCell'in varsayılan yüksekliği nedir? 44 piksele benziyor, ancak emin olmayı tercih ederim.

Yanıtlar:


361

44 piksel. Kesinlikle. Bu sayıyı asla unutmayacağım.

44px ayrıca UIToolbar ve UINavigationBar için varsayılan yüksekliktir. (Her ikisi de otomatik olarak yatay yönde döndürüldüğünde 32 piksele geçer.)


61
Haha, "Bu sayıyı asla unutmayacağım" kulağa uğursuz geliyor ;-)
Rob

4
@antony: view.bounds.size.height
samvermette

4
@MikeyWard: Muhtemelen bunu zaten anladınız, ancak 1 piksel ayırıcı yüksekliğe dahil edilmiştir. Aslında hücrenin en alt içeriğini kaplar.
Ben S

44
Teknik olarak, 44 puan. Retina ekranda 88 piksele çıkacak. Saçları ya da başka bir şeyi ayırmamak.
Ben Mosher

23
tableView.rowHeight
Hunter

27

Herhangi bir cihazda varsayılan boyutu kullanmak isterseniz: UITableViewAutomaticDimension

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

    return UITableViewAutomaticDimension;
}

Şu anda 44 piksel varsayılan olsa da, uygulamanız varsayılan değer ayarlanmışsa bu kullanışlı bir yöntemdir.


3
UITableView.automaticDimensionsSwift 4
Bot

Bu sadece istediğiniz tek şey varsayılan yükseklik olduğunda işe yarar. Varsayılan yüksekliğin katlarından bazılarını istiyorsanız, bunun tarafından döndürülen değer gerçek bir yükseklik değildir. Apple, bu sihirli sayının arkasındaki gerçek nokta yüksekliğini gizledi (-1 olur).
PKCLsoft

16

Ne zaman style = UITableViewStyleGrouped, üst ve alt hücrelerin varsayılan yüksekliği aslında 45.0f(değil 44.0f). Ve, gruplandırılmış tablo yalnızca bir satırsa, hücre yüksekliği olacaktır 46.0f.


ayırıcı dahil mi?
lhunath

10

Bunu anında hesaplamak istiyorsanız, sadece bir kukla tablo hücresi tahsis edin ve yüksekliğini okuyun

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

Bu şekilde, iOS'un gelecekteki sürümlerindeki değişikliklere karşı savunuyorsunuz, ancak bunun olası olmadığını düşünüyorum.


Bu, autolayout ile sorunlu
MobileMon

27
Autolayout ile her şey sorunlu.
devios1

sorunlu nasıl, tam olarak?
AndrewR

3

"Style = UITableViewStyleGrouped olduğunda, üst ve alt hücrelerin varsayılan yüksekliği aslında 45.0f'dir (44.0f değil). Ve gruplandırılmış tablo yalnızca bir satırsa hücre yüksekliği 46.0f olacaktır." Yanlış!! Aslında 44.0f! Sadece test ediyorum!


2

Kulağa doğru geliyor. Ancak, Arayüz oluşturucuyu yükleyebileceğinizden emin olmak için, projeye bir UITableViewCell koyun ve ardından Inspector penceresindeki boyut özelliklerini kontrol edin. MacBook'um şu anda yanımda değil, bu yüzden kontrol edemiyorum. Ama birinden daha iyi bir cevap alamazsanız, kendinizi bu şekilde kontrol edebilirsiniz.


Ah, tamam, 44'ü buraya aldım.
Rob

2

In Swift 4 ve Swift 5 basitçe kullanın:

UITableView.automaticDimension

Farklı piksel piksel yoğunluklarına göre değişeceğinden 44 piksel kullanmak yeterli olmaz.


0

İOS 12'de iPhone X benzeri cihazlarda (X, XS, XS Max, XR) varsayılan yükseklik 49pt'dir .

İOS 12'deki diğer cihazlarda hala varsayılan olarak 44pt vardır . Bu ince bir fark, ama doğrudan karşılaştırmada iyi bir gelişme gibi geliyor.

Bana inanmayacaksanız, bu ekran görüntüsünde kendiniz ölçün (3'e bölmeyi unutmayın) ...;)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.