วันพุธที่ 11 พฤษภาคม พ.ศ. 2554

iPhone: Creating a Splash Screen (Fade Out Style)

iPhone: Creating a Splash Screen (Fade Out Style)
จากที่ผมเคยเสนอวิธีทำ Splash Screen ที่แสนง่ายในบทความ iPhone: Creating a Splash Screen เพียงแค่มีรูป Default.png ก็สามารถทำ splash screen ได้แล้ว แต่วันนี้ผมจะนำเทคนิคเพิ่มเติมทำให้ splash screen มีความน่าสนใจยิ่งขึ้น คือ ทำให้ splash screen มันจางหายออกไป โอเคบางคนอาจจะเคยทำ เคยใช้แบบ Timer แต่ผมไม่ใช่แบบนั้น มันมีแบบที่ง่ายกว่านั้นอีก ลองมาดูกัน


ขั้นตอน ผมจะยึดตามบทความ iPhone: Creating a Splash Screen นะครับ เพราะว่า เพิ่มโค้ดอีกเพียงไม่กี่บรรทัดเท่านั้นเอง

หลักการคือ จากฟังก์ชั่นการสร้าง PerformSector ทำให้เราสามารถกำหนดเวลาที่จะเข้าทำงานในฟังก์ชั่นของเราได้ ผมจึงใช้ฟังก์ชั่น hideSplash เป็นฟังก์ชั่นในการควบคุมการ Fade Out ครับ เมื่อ splash screen จางหายไป (alpha = 0) ผมก็จะสั่งให้ remove splash screen ออกจาก Super View เท่านี้เอง มาดูกันครับว่าผมเขียนโค้ดอะไรบ้าง

- ในฟังก์ชั่น showSplash

[sourcecode language="objc"]
-(void) showSplash{
splashView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
splashView.image = [UIImage imageNamed:@"Default.png"];
[window addSubview:splashView];
[window bringSubviewToFront:splashView];
[self performSelector:@selector(hideSplash) withObject:nil afterDelay:0.1];
}
[/sourcecode]

- ในฟังก์ชั่น hideSplash

[sourcecode language="objc"]
-(void) hideSplash{
splashView.alpha = splashView.alpha-0.03;
if (splashView.alpha<=0) {
[splashView removeFromSuperview];
[splashView release];
}else{
[self performSelector:@selector(hideSplash) withObject:nil afterDelay:0.1];
}
}
[/sourcecode]

อธิบายเพิ่มเติม

  1. ฟังก์ชั่น showSplash ผมลด delay ลงเนื่องจะมันจะเป็น delay ในแต่ละรอบที่เข้าทำงานในฟังก์ชั่น hideSplash

  2. ส่วนฟังก์ชั่น hideSplash ผมเขียนเพิ่มแค่การ ลดค่า alpha และ การวนเรียกฟังก์ชั่นเดิม เมื่อ alpha มันยังไม่เท่ากับ 0


ผลลัพธ์



เปรียบเทียบกับการใช้ Timer นะครับ

บทความที่เกี่ยวข้อง

adaydesign :)

ไม่มีความคิดเห็น:

แสดงความคิดเห็น