วันจันทร์ที่ 29 ตุลาคม พ.ศ. 2555

Basic Xcode Programming V : Table View Part I


Basic Xcode Programming V : Table View Part I


จริงๆ แล้วการเขียนในหัวข้อ Table View มีความซับซ้อนพอสมควรนะครับ มันต้องมีเรื่องที่ต้องทำความเข้าใจก่อนมากพอสมควรเลยทีเดียว แต่ผมจะพยายามอธิบายให้มันเข้าใจง่ายๆ ที่สุดนะครับ สำหรับบทความนี้เรามาทำรู้จักกับ Table View คร่าวๆ กันก่อนครับ

  • สร้าง New Project เลือก Single View Application
  • ตั้งชื่อ Project โดยไม่เลือกเครื่องหมายถูกแม้แต่อันเดียว



  • ไปที่ Interface Builder นำ Table View Object มาวาง
  • ไปที่ ViewController.h  เปลี่ยนแปลง Code ให้เป็นดังต่อไปนี้

## อธิบาย Code ##

@interface ViewController : UIViewController <UITableViewDataSourceUITableViewDelegate>

เป็นการบอกให้ทราบว่า ViewContoller นี้จะมีการเรียกใช้งาน TableViewDataSource และ TableViewDelegate ส่วนมันคืออะไร ใช้งานอย่างไรขอละไว้ในฐานที่เข้าใจก่อนนะครับ


  • ไปที่ ViewController.m  เปลี่ยนแปลง Code ให้เป็นดังนี้



## อธิบาย Code ##




- (void)dealloc {
    [super dealloc];
    [self.myTableView release];
}


จริงๆแล้ว Method Dealloc เป็นระบบบริหารจัดการพื้นที่ในหน่วยความจำนั่นเองครับ ซึ่งมีหน้าที่ในการยกเลิกการจองพื้นที่ในหน่อยความจำสำหรับ Object ที่เราไม่ได้ใช้งานแล้วนั่นเอง ( ทำหน้าที่ตรงกันข้ามกับ @synthesize นั่นเองครับ )



  • เพิ่มเติม Code อีกนะครับ
เยอะจังเลย มันคืออะไรกันละเนี่ย T_T


## อธิบาย Code ##
ลองค่อยๆมาทำความเข้าใจ ในแต่ละส่วนน่ะครับ




#pragma mark - UITableVeiwDAtasource

เป็นคำสั่งที่จะช่วยจัดหมวดหมู่ของ Method ที่อยู่ใน File เพื่อให้สะดวกสำหรับการค้นหาใน Jump Bar

ยังจำ Jump Bar ได้ไหมครับ

สิ่งที่เพิ่มขึ้นมาใน Jump Bar หลังจากในคำสั่ง #Pragma mark

- (NSInteger) tableView : (UITableView *) tableView numberOfRowsInSection : (NSInteger) section {


   return 10; }

แสดงจำนวนแถวที่ต้องการจะแสดงในแต่ละ Section ใน TableView ( โดยปกติ Table View จะตั้งค่ามาตรฐานไว้ 1 Section ซึ่งอยากจะกำหนดจำนวน Section ก็จะไปแก้ไขในอีก Method หนึ่งครับ )


- (UITableViewCell *) tableView : (UITableView *) tableView cellForRowAtIndexPath :(NSIndexPath*) indexPath {
    
static NSString *MyIdentifier = @"MyIdentifier";

// Try to retrieve from the table view a now-unused cell with the given identifier.
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier : MyIdentifier];

// If no cell is available, create a new one using the given identifier.
if (cell == nil) {

// Use the default cell style.
cell = [[[UITableViewCell allocinitWithStyle UITableViewCellStyleSubtitle  
reuseIdentifier : MyIdentifier] autorelease];
}

// Set up the cell.
    cell.textLabel.text = @"text";
    cell.detailTextLabel.text = @"detail";

return cell;
}

จริงๆแล้วในส่วนนี้ จะให้เข้าใจเกี่ยวกับตรงส่วน // Set up the cell. ก่อนน่ะครับ เป็นส่วนที่สามารถใส่คำสั่งต่างๆ เพื่อกำหนดได้ว่าในแต่ละ Cell ให้แสดงอะไรบ้าง โดยที่เราสามารถดูได้ว่า Cell ทำอะไรได้บ้างโดยการพิมพ์ cell. แล้วลองกด esc ดูครับ XCode จะแสดงขึ้นมาให้ดู

ในแต่ละ Cell สามารถทำอะไรได้เยอะมากครับ

  • เสร็จแล้วก็ลอง Build & Run ดูครับ

ของผมได้แบบนี้  ^ ^

เป็นอย่างไรบ้างครับสมหรับบทความนี้ อาจจะยังมีหลายอย่างที่ยังไม่ค่อยเข้าใจ เดี๋ยวผมจะพยายามค่อยๆ อธิบายไว้ในบทความหน้าน่ะครับ สำหรับบทความนี้ก็จบเท่านี้แหละครับผม มีอะไรสงสัยโพสทิ้งไว้นะครับ ผมจะมาตอบให้ครับ

0 ความคิดเห็น:

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