ส่งโปรแกรมไปยังองค์ประกอบด้านหน้า / ด้านหลังที่สร้างจากตัวสร้างอินเทอร์เฟซ


84

ในการสร้างอินเตอร์เฟซที่มีตัวเลือกรูปแบบที่จะส่งไปกลับหรือส่งไปยังด้านหน้าองค์ประกอบใด ๆ เช่นUIButton, UIImage, UILabelฯลฯ ...

ตอนนี้ฉันต้องการทำเช่นเดียวกันกับรันไทม์โดยทางโปรแกรม

มีวิธีง่ายๆในการทำเช่นนั้นหรือไม่?

ฉันไม่ต้องการสร้างมุมมองที่แตกต่างกันเพียงแค่อัปเดตแกน z

คำตอบ:


192

มีหลายวิธีUIViewที่อนุญาตให้คุณแก้ไขลำดับชั้นของมุมมอง

เนื่องจากมุมมองของคุณถูกแทรกลงในซูเปอร์วิวของคุณแล้วคุณสามารถเรียกbringSubviewToFront:หนึ่งครั้งสำหรับการดูแต่ละครั้งตามลำดับที่คุณต้องการได้อย่างง่ายดาย


คุณกำลังบอกว่าฉันไม่สามารถส่ง UIButton ไปด้านหน้า / ด้านหลังได้โดยตรง? ฉันต้องสร้างมุมมองและเพิ่มลงในมุมมองนั้น แล้วใช้วิธีข้างบน? ถ้าเป็นเช่นนั้นคลาสคอนโทรลเลอร์เป็นสถานที่ในการสร้างมุมมองดังกล่าวหรือไม่
Yohann T.

11
UIButton เป็นคลาสย่อยของ UIView เพียงโทร: [[myButton superview] bringSubviewToFront: myButton];
Sebastian Celis

เพื่อคลายข้อสงสัยเล็กน้อยที่ฉันมี: หากคุณแทรกมุมมองย่อยที่อยู่ในลำดับชั้นมุมมองแล้วระบบปฏิบัติการจะย้ายตำแหน่งเท่านั้น ดังนั้นการแทรกตราบเท่าที่มีมุมมองอยู่จะไม่ทำให้เกิดค่าใช้จ่ายใด ๆ
olivaresF

"โทรbringSubviewToFront:ครั้งเดียวสำหรับการดูแต่ละครั้งตามลำดับที่คุณต้องการ" นั่นเป็นเคล็ดลับจริงๆ สิ่งที่ดี.
ตอบ

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