ฉันคิดว่าข้อมูลนี้จะหาง่ายกว่า :-)
ความสูงเริ่มต้นของ UITableViewCell คืออะไร ดูเหมือนว่า 44 พิกเซล แต่ฉันอยากจะแน่ใจ
ฉันคิดว่าข้อมูลนี้จะหาง่ายกว่า :-)
ความสูงเริ่มต้นของ UITableViewCell คืออะไร ดูเหมือนว่า 44 พิกเซล แต่ฉันอยากจะแน่ใจ
คำตอบ:
มันคือ 44 พิกเซล อย่างแน่นอน. ฉันจะไม่มีวันลืมหมายเลขนั้น
44px เป็นความสูงเริ่มต้นสำหรับ UIToolbar และ UINavigationBar (ทั้งสองสลับเป็น 32px เมื่อปรับอัตโนมัติเป็นแนวนอน)
หากคุณต้องการมิติข้อมูลเริ่มต้นบนอุปกรณ์ใด ๆ คุณสามารถใช้: UITableViewAutomaticDimension
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return UITableViewAutomaticDimension;
}
แม้ว่าปัจจุบัน 44 พิกเซลจะเป็นค่าเริ่มต้น แต่นี่เป็นวิธีที่มีประโยชน์หากแอปของคุณใช้การตั้งค่าเริ่มต้น
UITableView.automaticDimensions
Swift 4
เมื่อstyle = UITableViewStyleGrouped
ความสูงเริ่มต้นของเซลล์ด้านบนและด้านล่างเป็นจริง45.0f
(ไม่ใช่44.0f
) 46.0f
และถ้าตารางการจัดกลุ่มเป็นเพียงหนึ่งแถวความสูงของเซลล์จะเป็น
หากคุณต้องการคำนวณสิ่งนี้ในทันทีเพียงจัดสรรเซลล์ตารางจำลองและอ่านความสูง
UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];
int height = cell.frame.size.height ;
วิธีนี้คุณจะป้องกันการเปลี่ยนแปลงใน iOS เวอร์ชันต่อ ๆ ไปแม้ว่าฉันคิดว่ามันไม่น่าเป็นไปได้
"เมื่อ style = UITableViewStyleGrouped ความสูงเริ่มต้นของเซลล์บนสุดและล่างคือ 45.0f (ไม่ใช่ 44.0f) และถ้าตารางที่จัดกลุ่มเป็นหนึ่งแถวเท่านั้นความสูงของเซลล์จะเป็น 46.0f" มันผิด!! ในความเป็นจริง 44.0f! ฉันแค่ทดสอบมัน!
นั่นฟังดูถูก แต่เพื่อให้แน่ใจว่าคุณสามารถโหลดตัวสร้างส่วนต่อประสานได้ให้ใส่ UITableViewCell ลงในโครงการจากนั้นตรวจสอบคุณสมบัติขนาดในหน้าต่างตัวตรวจสอบ ฉันไม่มี MacBook กับฉันในตอนนี้ดังนั้นฉันไม่สามารถตรวจสอบได้ แต่ถ้าคุณไม่ได้รับคำตอบที่ดีกว่าจากใครบางคนนั่นคือวิธีที่คุณสามารถตรวจสอบตัวเองได้
ในSwift 4และSwift 5เพียงใช้:
UITableView.automaticDimension
การใช้ 44px ไม่เพียงพอเพราะจะแตกต่างกันกับความหนาแน่นของพิกเซลหน้าจอที่แตกต่างกัน
บน iOS 12 ความสูงเริ่มต้นบน iPhone X เช่นเดียวกับอุปกรณ์ (x, XS, XS แม็กซ์, XR) เป็น49pt
อุปกรณ์อื่น ๆ บน iOS 12 ยังคงมีค่า44 พอยต์เป็นค่าเริ่มต้น มันแตกต่างกันเล็กน้อย แต่มันให้ความรู้สึกที่ดีขึ้นเมื่อเปรียบเทียบโดยตรง
หากคุณไม่เชื่อฉันลองวัดด้วยตัวคุณเองในสกรีนช็อตนี้ (อย่าลืมหารด้วย 3) ... ;)