หลังจากบันทึกเรื่องเกี่ยวกับการเปลี่ยนไปแสดง view อื่นด้วย modal view ไปแล้ว คราวนี้จะเป็นการสลับ (exchange) ไป view อื่นโดยไม่จำเป็นต้องพึ่งพา modal view
อันที่จริงแล้วการเปลี่ยนไปแสดงอีก view หนึ่งนั้น นอกจากจะใช้ modal view ดังกล่าวแล้ว เรายังสามารถใช้ navigation controller ช่วย push หน้า view เข้ามาแทนหน้า view เดิมก็ได้ (application เหล่านี้มักพบใน application ที่มีการใช้ตาราง เช่น Mail, iPod, Contacts และอื่นๆ เป็นต้น ) ก็ได้ หรือไม่ก็วิธีง่ายๆก็คือใช้ method addSubView: หรือ method จำพวก insertSubview: ก็ได้
สำหรับคราวนี้พระเอกที่จะช่วยในการสลับ view ไปแสดง view อีกอันหนึ่งก็คือ method ชื่อ exchangeSubviewAtIndex:withSubviewAtIndex: ของ UIView นั่นเอง
// begin animation block
CGContextRef context = UIGraphicsGetCurrentContext();
[UIView beginAnimations:nil context:context];
// set animation transition style
[UIView setAnimationTransition: UIViewAnimationTransitionCurlUp forView: myView cache:YES];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration:1];
// Animations for exchanging subview
[self.view exchangeSubviewAtIndex:0 withSubviewAtIndex:1];
[UIView commitAnimations];
สำหรับ method setAnimationTransition;forView:cache: จะมี animation type ให้เลือกทั้งหมด 4 แบบ ดังนี้
UIViewAnimationTransitionCurlUp
UIViewAnimationTransitionCurlDown
เป็น animation แบบพลิกกระดาษขึ้น และลง
UIViewAnimationTransitionFlipFromLeft
UIViewAnimationTransitionFlipFromRight
เป็น animation แบบพลิกหน้าจอไปทางซ้าย และขวา
และอีก 1 แบบคือกำหนดว่าไม่ต้องมี animation ใดๆในการ exchange view
UIViewAnimationTransitionNone
ส่วนของ method setAnimationCurve: นั่นเป็นการกำหนดว่าจะให้แสดง animation ในลักษณะให้ค่อยเร็วขึ้นจนจบ หรือว่าให้ค่อยๆช้าตอนจบ ซึ่งหากไม่ได้กำหนดค่าให้ จะมี default เป็น UIViewAnimationCurveEaseInOut
0 comments:
Post a Comment