ด้วย 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
}
อย่างไรก็ตามนี่ไม่ใช่ "เลื่อนขึ้น" โดยอัตโนมัติหรือจัดกึ่งกลางของช่องข้อความด้านล่างในพื้นที่ที่มองเห็นได้ซึ่งเป็นสิ่งที่ฉันต้องการจริงๆ