iPhone: Setting scroll position in UITableView


Setting scroll position in UITableView

เวลาเราเขียนโปรแกรมใช้ UITableView ในแต่ละ section หรือในแต่ละ row เมื่อเราอยากให้กด แล้วแสดงรายละเอียดอื่นๆ แบบการแทรก row เข้าไป ปัญหาคือว่า row ที่เรากดเมื่อแทรก row เนื้อหาเข้าไปอืกมันจะไม่อยู่ที่ที่ควรอยู่เลย

ดังนั้นเราจึงต้องมีการปรับตำแหน่งของ UITableView เมื่อเรากด row นั้นแล้ว และตัวที่กำหนดตำแหน่งนี้คือตัว ScrollBar ของ UITableView นั้นเอง

ตัวอย่างเมื่อเราจะกดที่ปุ่ม (Detail Disclosure) แล้วให้แต่ละ section แสดงรายละเอียด เราจะเขียนในฟังก์ชั่น

-(void) tableView:(UITableView *)tableView
        accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath{
     //step1: to do...
     //step2: update table
     //step3: set scrollbar position
}

 

1. เขียนส่วนของการเปิดแสดงรายละเอียดของแต่ละ section ที่ //to do…

2. update table data โดย

[tableView reloadData];

3. set scrollbar position โดย

[tableView scrollToRowAtIndexPath:indexPath 
                 atScrollPosition:UITableViewScrollPositionTop 
                         animated:YES];

เพียงเท่านี้เวลาเรากดในแต่ละ row ของ section ต่างๆ มันก็จะเลื่อนขึ้นไปอยู่ด้านขอบบนให้อัตโนมัติ (UITableViewScrollPositionTop)

Reference

http://stackoverflow.com/questions/413055/setting-scroll-position-in-uitableview

adaydesign :)

About adaydesign

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

Posted on กุมภาพันธ์ 20, 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: