ฉันมีตาราง (จัดกลุ่มสไตล์) ไม่กี่ตารางในแอพ iphone ของฉัน (เฉพาะบางส่วนของหน้าจอและเพิ่มด้วยInterface Builder
แม้ว่าจะไม่ได้รับการจัดประเภทย่อยUITableViewController
) ว่า 80% ของเวลามีขนาดเล็กและจะพอดีกับหน้าจอ เมื่อตารางพอดีกับหน้าจอฉันต้องการปิดใช้งานการเลื่อนเพื่อให้มันสะอาดขึ้นเล็กน้อย แต่ถ้าตารางหลุดออกจากหน้าจอ (เมื่อเพิ่มแถวเข้าไปในภายหลัง) ฉันต้องการเปิดใช้งานการเลื่อนอีกครั้ง (เพราะไม่เช่นนั้นคุณจะไม่เห็นเนื้อหานั้น)
มีวิธีทำเช่นนี้หรือไม่? ฉันดูเหมือนจะไม่สามารถคิดออก ฉันรู้ว่าต้องทำ:
tableView.scrollEnabled = NO;
แต่ฉันไม่แน่ใจว่าที่ไหนหรือถ้าฉันต้องคำนวณขนาดวัตถุตารางหรือบางสิ่งบางอย่างเพื่อให้มันทำงาน
อัปเดต : ต่อไปนี้เป็นโซลูชันที่ใช้งานได้ในที่สุดสำหรับฉัน:
if (table.contentSize.height < table.frame.size.height) {
table.scrollEnabled = NO;
}
else {
table.scrollEnabled = YES;
}
ฉันเรียกใช้รหัสนี้หลังจากเรียกreloadData
บนโต๊ะและมันคำนวณขนาดที่เหมาะสมและดูเหมือนว่าจะทำงาน
table.frame.size.height
คือขนาดที่แท้จริงของวัตถุ (คุณสามารถเห็นสิ่งนี้ในInterface Builder
) ปรากฏบนหน้าจอในขณะtable.contentSize.height
ที่ความสูงของ: ส่วนหัว, ส่วนท้ายและส่วนสูงของเซลล์ทุกเซลล์เข้าด้วยกัน