Showing posts with label UIKit. Show all posts
Showing posts with label UIKit. Show all posts

Monday, October 8, 2012

UISteper

ต่อจากเรื่องของ UIRefreshControl วันนี้ขอนำเสนออีกหนึ่ง Control ซึ่งจะเพิ่มเข้ามาตั้งแต่ iOS เวอร์ชั่น 5.0 ขึ้นไป เจ้าตัวนี้มีชื่อว่า UIStepper ครับ


UIStepper เป็น Control ที่ใช้ในการนับจำนวนไม่ว่าจะเพิ่มหรือลดก็ตามแต่ หากเราสร้างโปรแกรมที่ต้องการนับจำนวน เช่น จำนวนผู้เข้าห้องพักในโรงแรม เป็นต้น
มาดูการใช้งานกันได้ครับ
สำหรับโปรเจคนี้ผมสร้างโดยการเชื่อม UI กับ Code เลย (ง่ายมากๆ ^^) ไว้เป็นหัวข้อต่อไปจะมาแนะนำการใช้งานอีกทีครับ



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

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Set Max Value
    self.stepper.maximumValue = 10.0;
    // Set Min Value
    self.stepper.minimumValue = 0.0;
    // Set Step Value
    self.stepper.stepValue = 1.0;
}


จากโค้ดผมกำหนดค่่า Maximum และ Minimum ของ Stepper ให้เป็น 0 - 10 นะครับ จากนั้นกำหนดค่า Step Value ในการกดเป็นเพิ่มหรือลดทีละ 1 ค่า


และสร้าง Method ขึ้นมาหนึ่งตัวคือ pressStepper สำหรับ Method นี้จะทำหน้าที่ในการแสดงผลของตัวเลขที่กดออกมาทางหน้าจอผ่าน UILabel ครับ


- (IBAction)pressStepper:(id)sender {
    [self.stepperLbl setText:[NSString stringWithFormat:@"%.1f",self.stepper.value]];
}


สำหรับการใช้งาน UIStepper เบื้องต้นก็มีประมาณนี้ครับ ส่วนใครที่อาจจะยังงงๆ อยู่สามารถดาวโหลดตัวอย่าง Souce ไปดูได้ครับ

Sunday, October 7, 2012

UIRefresh Control

บทเริ่มแรกขอแนะนำเกี่ยวกับความสามารถใหม่บน iOS6 กันดีกว่านะครับ กำลังมันส์มือ ^^ สำหรับใครที่อัพเดท iOS เป็นเวอร์ชัน 6 ไปเป็นที่เรียบร้อยน่าจะเห็น Pull to Refresh ตัวหนึ่งที่อยู่ใน Mail App นะครับ หน้าตามันจะเป็นแบบดังภาพนี้เลย


คงจะอ๋อกันแล้วนะครับ สำหรับ Refresh ตัวนี้ โดยความสามารถ Apple ได้เปิดให้นักพัฒนาสามารถใช้งานได้เหมือนกันแต่ต้องเป็น iOS6 ขึ้นไปนะครับถึงจะใช้ได้
สำหรับ Control ตัวนี้มีชื่อว่า UIRefreshControl หากใครใช้ XCode 4.5 ขึ้นไป ก็ลองเล่นดูกันได้ครับ 

เริ่มต้นผมสร้าง Object ของ UIRefreshControl ขึ้นมาแล้วเพิ่มเข้าไปเป็น Subview ของ UITableView ต้องเป็น UITableView เท่านั้นนะครับ


- (void)viewDidLoad
{
    [super viewDidLoad];
    
    refreshControl = [[UIRefreshControl alloc] init];
    [refreshControl addTarget:self action:@selector(pullRefresh) forControlEvents:UIControlEventValueChanged];

    [self.tableView addSubview:refreshControl];
}


จากนั้นถ้าเร่ิมมีการ Pull ผมจะให้โปรแกรมเข้าไปทำงานในส่วนของ Method -(void) pullRefresh แล้วส่ัง หยุดการ Refresh หากใครที่นำไปประยุคใช้ก็ให้มาทำคำสั่งที่เราต้องการใน Method นี้ได้เลยครับ เช่น สั่งโหลดข้อมูลล่าสุด แล้ว Reload TableView เป็นต้นครับ

- (void) pullRefresh {
    [refreshControl endRefreshing];
}

สำหรับ RefreshControl ก็มีเท่านี้ครับ ง่ายใช่ไหมละ ลองฝึกใช้กันนะครับ เดี๋ยวก็คล่องแล้ว ส่วนใครอยากลองดาวโหลด Source ไปเล่นดูก็ จิ้มได้เลยครับ