ความสูงเริ่มต้นของ UITableViewCell คืออะไร


166

ฉันคิดว่าข้อมูลนี้จะหาง่ายกว่า :-)

ความสูงเริ่มต้นของ UITableViewCell คืออะไร ดูเหมือนว่า 44 พิกเซล แต่ฉันอยากจะแน่ใจ

คำตอบ:


361

มันคือ 44 พิกเซล อย่างแน่นอน. ฉันจะไม่มีวันลืมหมายเลขนั้น

44px เป็นความสูงเริ่มต้นสำหรับ UIToolbar และ UINavigationBar (ทั้งสองสลับเป็น 32px เมื่อปรับอัตโนมัติเป็นแนวนอน)


61
ฮ่า ๆ "ผมจะไม่มีวันลืมตัวเลขที่" เสียงเป็นลางไม่ดี ;-)
ร็อบ

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

4
@MikeyWard: คุณอาจจะเข้าใจว่าสิ่งนี้อยู่แล้ว แต่ตัวแยกขนาด 1px รวมอยู่ในความสูง จริง ๆ แล้วมันครอบคลุมเนื้อหาที่ด้านล่างสุดของเซลล์
เบ็นเอส

44
ในทางเทคนิคมันเป็น 44 คะแนน มันจะออกมาที่ 88px บนจอแสดงผล Retina ไม่ให้แตกผมหรืออะไร
Ben Mosher

23
tableView.rowHeight
Hunter

27

หากคุณต้องการมิติข้อมูลเริ่มต้นบนอุปกรณ์ใด ๆ คุณสามารถใช้: UITableViewAutomaticDimension

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

    return UITableViewAutomaticDimension;
}

แม้ว่าปัจจุบัน 44 พิกเซลจะเป็นค่าเริ่มต้น แต่นี่เป็นวิธีที่มีประโยชน์หากแอปของคุณใช้การตั้งค่าเริ่มต้น


3
ถูกเปลี่ยนชื่อเป็นUITableView.automaticDimensionsSwift 4
Bot

สิ่งนี้จะใช้งานได้ก็ต่อเมื่อสิ่งที่คุณต้องการคือความสูงเริ่มต้น หากคุณต้องการหลายความสูงเริ่มต้นจริง ๆ แล้วค่าที่ส่งคืนโดยนี่ไม่ใช่ความสูงจริง แอปเปิ้ลได้ซ่อนความสูงของจุดที่แท้จริงหลังจำนวนมายากลนี้ (ซึ่งเกิดขึ้นเป็น -1)
PKCLsoft

16

เมื่อstyle = UITableViewStyleGroupedความสูงเริ่มต้นของเซลล์ด้านบนและด้านล่างเป็นจริง45.0f(ไม่ใช่44.0f) 46.0fและถ้าตารางการจัดกลุ่มเป็นเพียงหนึ่งแถวความสูงของเซลล์จะเป็น


นั่นรวมถึงตัวคั่นหรือไม่
lhunath

10

หากคุณต้องการคำนวณสิ่งนี้ในทันทีเพียงจัดสรรเซลล์ตารางจำลองและอ่านความสูง

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

วิธีนี้คุณจะป้องกันการเปลี่ยนแปลงใน iOS เวอร์ชันต่อ ๆ ไปแม้ว่าฉันคิดว่ามันไม่น่าเป็นไปได้


นี่เป็นปัญหาที่เกิดขึ้นกับการชำระอัตโนมัติ
MobileMon

27
ทุกอย่างมีปัญหากับการชำระอัตโนมัติ
devios1

มีปัญหาอย่างไร
AndrewR

3

"เมื่อ style = UITableViewStyleGrouped ความสูงเริ่มต้นของเซลล์บนสุดและล่างคือ 45.0f (ไม่ใช่ 44.0f) และถ้าตารางที่จัดกลุ่มเป็นหนึ่งแถวเท่านั้นความสูงของเซลล์จะเป็น 46.0f" มันผิด!! ในความเป็นจริง 44.0f! ฉันแค่ทดสอบมัน!


2

นั่นฟังดูถูก แต่เพื่อให้แน่ใจว่าคุณสามารถโหลดตัวสร้างส่วนต่อประสานได้ให้ใส่ UITableViewCell ลงในโครงการจากนั้นตรวจสอบคุณสมบัติขนาดในหน้าต่างตัวตรวจสอบ ฉันไม่มี MacBook กับฉันในตอนนี้ดังนั้นฉันไม่สามารถตรวจสอบได้ แต่ถ้าคุณไม่ได้รับคำตอบที่ดีกว่าจากใครบางคนนั่นคือวิธีที่คุณสามารถตรวจสอบตัวเองได้


อ่าโอเคนั่นคือจุดเริ่มต้นที่ฉันได้ 44 มา
Rob

2

ในSwift 4และSwift 5เพียงใช้:

UITableView.automaticDimension

การใช้ 44px ไม่เพียงพอเพราะจะแตกต่างกันกับความหนาแน่นของพิกเซลหน้าจอที่แตกต่างกัน


0

บน iOS 12 ความสูงเริ่มต้นบน iPhone X เช่นเดียวกับอุปกรณ์ (x, XS, XS แม็กซ์, XR) เป็น49pt

อุปกรณ์อื่น ๆ บน iOS 12 ยังคงมีค่า44 พอยต์เป็นค่าเริ่มต้น มันแตกต่างกันเล็กน้อย แต่มันให้ความรู้สึกที่ดีขึ้นเมื่อเปรียบเทียบโดยตรง

หากคุณไม่เชื่อฉันลองวัดด้วยตัวคุณเองในสกรีนช็อตนี้ (อย่าลืมหารด้วย 3) ... ;)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.