ด้วย iOS SDK:
ฉันมีUIViewกับUITextFieldที่นำขึ้นแป้นพิมพ์ ฉันต้องการมันเพื่อให้สามารถ:
อนุญาตให้เลื่อนเนื้อหาของ
UIScrollViewเพื่อดูฟิลด์ข้อความอื่น ๆ เมื่อคีย์บอร์ดปรากฏขึ้น"กระโดด" โดยอัตโนมัติ (โดยเลื่อนขึ้น) หรือย่อ
UIScrollViewฉันรู้ว่าฉันต้องมี ฉันได้ลองเปลี่ยนคลาสของฉันUIViewเป็นUIScrollViewแต่ฉันยังไม่สามารถเลื่อนกล่องข้อความขึ้นหรือลง
ฉันต้องการทั้ง a UIViewและ a UIScrollViewหรือไม่? ไม่มีใครเข้าไปข้างในอีกหรือไม่
สิ่งที่ต้องดำเนินการเพื่อเลื่อนไปยังฟิลด์ข้อความที่ใช้งานอยู่โดยอัตโนมัติ
จะเป็นการดีที่สุดสำหรับการตั้งค่าส่วนประกอบที่จะทำได้ในตัวสร้างส่วนต่อประสาน ฉันต้องการเขียนโค้ดเฉพาะสิ่งที่จำเป็นเท่านั้น
หมายเหตุ: UIView(หรือUIScrollView) ที่ฉันกำลังทำงานด้วยถูกนำขึ้นมาโดย tabbar ( UITabBar) ซึ่งต้องทำงานตามปกติ
แก้ไข: ฉันกำลังเพิ่มแถบเลื่อนเฉพาะเมื่อแป้นพิมพ์ปรากฏขึ้น แม้ว่าจะไม่จำเป็น แต่ฉันรู้สึกว่ามันมีส่วนต่อประสานที่ดีกว่าเพราะผู้ใช้สามารถเลื่อนและเปลี่ยนกล่องข้อความได้
ฉันได้มันทำงานที่ฉันเปลี่ยนขนาดเฟรมของUIScrollViewเมื่อแป้นพิมพ์ขึ้นและลง ฉันแค่ใช้:
-(void)textFieldDidBeginEditing:(UITextField *)textField {
//Keyboard becomes visible
scrollView.frame = CGRectMake(scrollView.frame.origin.x,
scrollView.frame.origin.y,
scrollView.frame.size.width,
scrollView.frame.size.height - 215 + 50); //resize
}
-(void)textFieldDidEndEditing:(UITextField *)textField {
//keyboard will hide
scrollView.frame = CGRectMake(scrollView.frame.origin.x,
scrollView.frame.origin.y,
scrollView.frame.size.width,
scrollView.frame.size.height + 215 - 50); //resize
}
อย่างไรก็ตามนี่ไม่ใช่ "เลื่อนขึ้น" โดยอัตโนมัติหรือจัดกึ่งกลางของช่องข้อความด้านล่างในพื้นที่ที่มองเห็นได้ซึ่งเป็นสิ่งที่ฉันต้องการจริงๆ

