ฉันมีแอปที่มีรายการข้อมูลยาวใน tableView และฉันต้องการแตะสองครั้งที่แถบนำทางเพื่อเลื่อน UITableView ที่ด้านบนของรายการ (ตำแหน่งที่มีการค้นหา)
ฉันจะใช้สิ่งนั้นได้อย่างไร?
ขอบคุณสำหรับความช่วยเหลือของคุณ.
ฉันมีแอปที่มีรายการข้อมูลยาวใน tableView และฉันต้องการแตะสองครั้งที่แถบนำทางเพื่อเลื่อน UITableView ที่ด้านบนของรายการ (ตำแหน่งที่มีการค้นหา)
ฉันจะใช้สิ่งนั้นได้อย่างไร?
ขอบคุณสำหรับความช่วยเหลือของคุณ.
ท่าทางมาตรฐานสำหรับการเลื่อน tableView ไปด้านบนคือการแตะเพียงครั้งเดียวบนแถบสถานะ เปิดใช้งานโดยค่าเริ่มต้น โปรดดู การอ้างอิง UIScrollView
หากคุณต้องการแถบการนำทางจริงๆ และคุณกำหนดเป้าหมายเป็น 3.2 ขึ้นไป ฉันขอแนะนำให้แนบ UITapGestureRecognizer เข้ากับ NavigationBar
- (void)viewDidLoad {
UITapGestureRecognizer* tapRecon = [[UITapGestureRecognizer alloc]
initWithTarget:self action:@selector(navigationBarDoubleTap:)];
tapRecon.numberOfTapsRequired = 2;
[navController.navigationBar addGestureRecognizer:tapRecon];
[tapRecon release];
}
- (void)navigationBarDoubleTap:(UIGestureRecognizer*)recognizer {
[tableView setContentOffset:CGPointMake(0,0) animated:YES];
}
หากคุณกำหนดเป้าหมายเป็น 3.0 หรือต่ำกว่า อาจยุ่งยากเล็กน้อยและไม่แนะนำ
ติดตามคำตอบจาก tonklon คุณสามารถแยกความแตกต่างระหว่างแต่ละรายการในมุมมอง NavigationBar โดยการรับมุมมองย่อย
มุมมองย่อยของ NavigationBar คือ:
0 ปุ่มซ้าย, 1 ชื่อ, 2 ปุ่มขวา,
ดังนั้นแทนที่จะเป็น:
[navController.navigationBar addGestureRecognizer:tapRecon];
ทำสิ่งนี้กับชื่อของแถบนำทาง:
[[self.navigationController.navigationBar.subviews objectAtIndex:1] setUserInteractionEnabled:YES];
[[self.navigationController.navigationBar.subviews objectAtIndex:1] addGestureRecognizer:tapRecon];