iPhone: UIActionSheet (2)


iPhone: UIActionSheet (2)

ต่อจากเมื่อวานในเรื่องของ UIActionSheet นะครับ วันนี้จะเป็นเรื่องของการเพิ่มปุ่มบน UIActionSheet โดยที่ข้อมูลของเราอยู่ในรูปของ อาเรย์ (NSArray) จากเดิมนั้นเราสามารถใส่ปุ่มอื่นๆ ใน UIActionSheet ได้โดยการสติงไปโดยตรงได้เลย แต่หากข้อมูลเราเป็นอาเรย์หละ เราจะทำการเพิ่มปุ่มใน UIActionSheet อย่างไรมาดูกันครับ

ขั้นตอนทั้งหมดมีอยู่ 3 ขั้นตอนนะครับ คือ การสร้าง UIActionSheet ขึ้นมาก่อน การเพิ่มปุ่มเข้าไป และการกำหนด index ให้กับปุ่ม Cancel มีรายละเอียดดังต่อไปนี้

1) การสร้าง UIActionSheet เราจะสร้างแบบไม่มีปุ่มอะไรเลยนะครับ

UIActionSheet *actSheet = [[UIActionSheet alloc] initWithTitle:@"Demo UIActionSheet (2) by adaydesign"
delegate:nil
cancelButtonTitle:nil
destructiveButtonTitle:nil
otherButtonTitles:nil];

สังเกตว่าตัวอย่างของผมจะไม่มีปุ่มอะไรเลย นอกจากการกำหนด title นะครับ แต่เราสามารถสร้างได้อีกแบบด้วยดังนี้

UIActionSheet *actSheet = [[UIActionSheet alloc] init];
[actSheet setTitle:@"Demo UIActionSheet (2) by adaydesign"];

2) การเพิ่มปุ่มที่เราต้องการเข้าไป โดยสิ่งที่กำหนดคือ เรามีข้อมูลอยู่ในอาเรย์ ที่จะเพิ่มเป็นปุ่ม เขียนโค้ดได้ดังนี้

NSArray *myButtonsName = [[NSArray alloc] initWithObjects:@"MY Button 1",@"MY Button 2",@"MY Button 3",@"MY Button 4",nil];
for (NSString *bTitle in myButtonsName) {
[actSheet addButtonWithTitle:bTitle];
}

3) เพิ่มปุ่ม Cancel และกำหนด index ของปุ่ม Cancel

เพิ่มเติมนะครับ ปุ่ม Cancel เอาไว้เพื่อให้ผู้ใช้ที่ไม่ต้องการเลือกเมนูใดเลย กด เพื่อปิด UIActionSheet แต่หากเราต้องการบังคับให้ผู้ใช้เลือกเมนูใดเมนูหนึ่ง ไม่จำเป็นต้องมีปุ่ม Cancel ก็ได้นะครับ

โค้ดการเพิ่มปุ่ม Cancel จะเหมือนกับการเพิ่มปุ่มทั่วไปใส่ UIActionSheet และก็กำหนด index ของปุ่ม Cancel เพื่อที่ UI จะแสดงเป็นปุ่มสีเทาเข้ม ตามโค้ด

[actSheet addButtonWithTitle:@"Cancel"];
[actSheet setCancelButtonIndex:[myButtonsName count]];

ภาพทางซ้ายมือ เป็นภาพเมื่อเราเพิ่มปุ่ม Cancel เข้าไปแต่ยังไม่กำหนด index ของปุ่ม Cancel ทำให้สีของปุ่มนั้นไม่เด่นออกมา แต่หากเรากำหนด index ของปุ่ม Cancel แล้ว ผลลัพธ์จะออกมาเหมือนภาพด้านขวามือ คือปุ่มจะมีสีเข้มขึ้นทำให้เห็นได้ชัดเจนกว่าปุ่มอื่นๆ

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

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

adaydesign :)

About adaydesign

นักพัฒนาแอพพลิเคชั่นบนโมบาย [iPhone Android] คนหนึ่งซึ่งอยากจะบันทึกเรื่องราวของเส้นทางนักพัฒนาโมบายแอพพลิเคชั่นเอาไว้ในบล็อคน้อยๆ แห่งนี้ เผื่อจะแบ่งบันและแลกเปลี่ยนความรู้ให้กับคนอื่นๆ ได้บ้าง :) Mobile Application Developer; Flash Mobile, iPhone/iPad, Android Mobile Phone/Tablet and Blackberry Playbook.

Posted on มิถุนายน 3, 2011, in [Dev] iOS and tagged , . Bookmark the permalink. ใส่ความเห็น.

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s

%d bloggers like this: