iOS/iPhone Action Sheet Popup - UIActionSheet (Objective-C,iPhone,iPad) |
iOS/iPhone Action Sheet Popup - UIActionSheet (Objective-C,iPhone,iPad) ถ้าใครเคยใช้ iOS เช่น iPhone หรือ iPad เราจะสังเกตุว่าบาง Action มีการเรียก Popup ที่โผล่มาจากด้านล้างของ Smart Phone เช่น การยืนยันลบข้อมูล หรือเลือกกระทำตาม Item ที่เป็น Optional ต่าง ๆ ที่มีมาให้เลือก ซึ่งตัวนี้มีชื่อเรียกอย่างเป็นทางการว่า Action Sheet หรือใน Class เราจะใช้ว่า UIActionSheet และเรามารู้วิธีการเรียกใช้งานแบบง่าย ๆ
Action Sheet Popup - UIActionSheet
ในการสร้าง Action Sheet Popup สามารถสร้างง่าย ๆ ด้วย Class ของ UIActionSheet ซึ่งมีหลักการเดียวกับ UIAlertView โดยเพียงแค่เปลี่ยน Class เป็น UIActionSheet และกำหนด Method ตรง otherButtonTitles:@"Item 1", @"Item 2", ... ซึ่งจะเป็นรายการ Item ของ Action Sheet ตามตัวอย่าง
sheet = [[UIActionSheet alloc] initWithTitle:@"Select Item"
delegate:self
cancelButtonTitle:@"Cancel"
destructiveButtonTitle:@"Item 0"
//destructiveButtonTitle:nil
otherButtonTitles:@"Item 1", @"Item 2", @"Item 3", @"Item 4", nil];
// Show the sheet
[sheet showInView:self.view];
//[sheet showInView:self.parentViewController.tabBarController.view];
[sheet release];
การอ่านค่า
- (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex
{
switch (buttonIndex) {
case 0:
lblResult.text = @" Your Selected Item 0";
break;
case 1:
lblResult.text = @" Your Selected Item 1";
break;
case 2:
lblResult.text = @" Your Selected Item 2";
break;
case 3:
lblResult.text = @" Your Selected Item 3";
break;
case 4:
lblResult.text = @" Your Selected Item 4";
break;
default:
break;
}
}
ทดสอบบน Xcode กับ iPhone Application
ทดสอบการสร้าง Project ง่าย ๆ ด้วย Single View Application
เลือก Project ดังรูป
ออกแบบหน้าจอ Interface ดังรูปและทำการเชื่อม IBOutlet และ IBAction ให้เรียร้อยด้วย
Code ของ Objective-C สำหรับ .h และ .m
ViewController.h
//
// ViewController.h
//
// Created by Weerachai on 10/27/55 BE.
// Copyright (c) 2555 Weerachai. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController <UIActionSheetDelegate>
{
IBOutlet UILabel *lblResult;
}
- (IBAction)btnOpenSheet:(id)sender;
@end
ViewController.m
//
// ViewController.m
//
// Created by Weerachai on 10/27/55 BE.
// Copyright (c) 2555 Weerachai. All rights reserved.
//
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
{
UIActionSheet *sheet;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (void)dealloc {
[lblResult release];
[super dealloc];
}
- (IBAction)btnOpenSheet:(id)sender {
sheet = [[UIActionSheet alloc] initWithTitle:@"Select Item"
delegate:self
cancelButtonTitle:@"Cancel"
destructiveButtonTitle:@"Item 0"
//destructiveButtonTitle:nil
otherButtonTitles:@"Item 1", @"Item 2", @"Item 3", @"Item 4", nil];
// Show the sheet
[sheet showInView:self.view];
//[sheet showInView:self.parentViewController.tabBarController.view];
[sheet release];
}
- (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex
{
switch (buttonIndex) {
case 0:
lblResult.text = @" Your Selected Item 0";
break;
case 1:
lblResult.text = @" Your Selected Item 1";
break;
case 2:
lblResult.text = @" Your Selected Item 2";
break;
case 3:
lblResult.text = @" Your Selected Item 3";
break;
case 4:
lblResult.text = @" Your Selected Item 4";
break;
default:
break;
}
}
@end
เพิ่มเติม
destructiveButtonTitle:@"Item 0" // เป็น Item ที่แสดงสีแดง ๆ (กำหนดเป็น Item เงื่อนอันตราย หรือ รุนแรง) ถ้าไม่ต้องการให้กำหนดค่าเป็น nil
Screenshot
คลิกที่ Button เพื่อเปิด Popup ของ Action Sheet
แสดง Action Sheet
ทดสอบการเลือก Action Sheet
แสดงรายการที่เลือก
|
ช่วยกันสนับสนุนรักษาเว็บไซต์ความรู้แห่งนี้ไว้ด้วยการสนับสนุน Source Code 2.0 ของทีมงานไทยครีเอท
|
|
|
By : |
ThaiCreate.Com Team (บทความเป็นลิขสิทธิ์ของเว็บไทยครีเอทห้ามนำเผยแพร่ ณ เว็บไซต์อื่น ๆ) |
|
Score Rating : |
|
|
|
Create/Update Date : |
2012-10-29 15:15:04 /
2017-03-26 00:22:58 |
|
Download : |
|
|
Sponsored Links / Related |
|
|
|
|
|
|
|