[iOS Dev] Pull to Refresh with UIRefreshControl


เป็น Feature ที่หวือหวามาก ตอนที่ผมเริ่มใช้ iOS 6 ใหม่ๆ ซึ่ง Feature นี้ถูกใช้ในโปรแกรม Mail
แต่ว่าเรื่องการทำ Pull to Refresh เนี่ย มีคนทำมานานแล้วล่ะครับ
แต่นี่เป็น Official API จาก Apple ซึ่งจะใช้ได้บนการพัฒนา iOS 6 ขึ้นไปเท่านั้น

ชื่อของมันก็คือ UIRefreshControl
โดย UIRefreshControl นั่นจะเป็น Property ของ UITableView นะครับ

App ง่ายๆ ที่เราจะเขียนกันก็คือ TableView ธรรมดาที่มี Data อยู่แค่นั้นแหละครับ



ผมคงไม่ต้องให้ Code ในส่วนนี้นะ คิดว่าถ้าต้องการทำแบบนี้คงเขียน TableView เป็นหมดแล้ว
ส่วนการ Implement ก็ไม่ยากเลยครับ ... ในกรณีที่เราเขียน Code โดย Controller ที่ใช้เป็น UITableViewController นั้นจะมี Property ให้เราใช้ได้เลย แบบนี้


ต่อมาก็เขียน Handle method กัน ตามที่เราได้ setTarget เอาไว้

คราวนี้ถ้า Controller เราไม่ใช่ UITableViewController ล่ะ (เช่น UIViewController ที่มี UITableView วางอยู่) ...
มันก็จะไม่มี Property ที่ชื่อว่า self.refreshControl ให้ใช้ ... เราจะเปลี่ยนไปใช้ addSubview แทนครับ แบบนี้

ด้านบนจะเป็น Hard Code นะครับ แล้วมีวิธีที่จะทำบน Interface Builder หรือปล่าว ? คำตอบคือ "มี"


เท่านี้ครับ ... แล้วก็ไปเขียน - addTarget ตามด้านบนให้ self.refeshControl ใน UITableViewController เท่านี้ก็เรียบร้อย :)
ใครสนใจที่จะทำ Pull to Refresh บน iOS 5 แนะนำตัวนี้นะครับ SVPullToRefresh
เคยเห็นแบบที่ลอก Apple มาเป๊ะๆ เลยก็มีนะ แต่นึกไม่ออกว่าอันไหน ไว้เจอจะมา Update ให้ครับ

Popular posts from this blog

12 วิธี การบริการและดูแลลูกค้าในร้าน Starbucks

[Android Dev] การติดตั้ง Eclipse+AndroidSDK เพื่อพัฒนาโปรแกรมบน Android

5 TED Talk ที่จะช่วยให้คุณทำงานดีขึ้น