รับดัชนีที่เลือกของ UITableView


104

UITableViewฉันต้องการจะมีดัชนีเลือกสำหรับ ฉันเขียนโค้ดต่อไปนี้:

NSIndexPath *index = [NSIndexPath indexPathForRow:1 inSection:0];
[tableView scrollToRowAtIndexPath:index 
                 atScrollPosition:UITableViewScrollPositionTop 
                         animated:YES];

สิ่งนี้ใช้ได้กับรายการที่ 1 เสมอ ฉันต้องการเลือกดัชนีในindexPathForRow.

กรุณาช่วย. ขอบคุณ.

คำตอบ:


216
NSIndexPath *selectedIndexPath = [tableView indexPathForSelectedRow];

5
หากคุณอนุญาตหลายตัวเลือกให้พิจารณาใช้: - (NSArray *) indexPathsForSelectedRows
yura

เมื่อคุณมี*selectedIndexPathแล้วมันจะมีประโยชน์สำหรับฉันในการเข้าถึงlong pathRow = [selectedIndexPath row];และlong pathSection = [selectedIndexPath section];เมื่อคุณต้องการการเลือกเฉพาะ (โปรดทราบว่าNSIntegerสิ่งtypedef longที่มาจากพื้นหลัง C จะเหมาะสมกว่าเนื่องจากทั้งคู่ต้องการ%ldอยู่แล้ว
Jonathan Weinraub

8

รับแถวปัจจุบันที่เลือก อาจเป็นประโยชน์หากคุณมีเพียงส่วนเดียว

- (NSUInteger)currentSellectedRowIndex
{
    NSIndexPath *selectedIndexPath = [self.tableView indexPathForSelectedRow];
    if (selectedIndexPath) {
        return selectedIndexPath.row;
    }
    else {
        return NSNotFound;
    }
}

5

ใช้รหัสนี้

CGPoint location =[sender locationInView:self.tableView];
NSIndexPath *swipedIndexPath = [self.tableView indexPathForRowAtPoint:location];
UITableViewCell *swipedCell  = [self.tableView cellForRowAtIndexPath:swipedIndexPath];
NSIndexPath *indexPath = [self.tableView indexPathForCell:swipedCell];

4

ใน didSelectRowAtIndexPath ตั้งค่าอินเทอร์เฟซที่ประกาศ NSIndexPath ขณะที่ indexpath ส่งคืน จากนั้นคุณสามารถเลื่อนไปที่ตัวแปรนั้นได้ หากคุณต้องการความช่วยเหลือแสดงความคิดเห็นและฉันสามารถให้รหัสตัวอย่างได้


หรือคุณสามารถใช้วิธีของ Chris เพื่อการใช้งานที่รวดเร็วขึ้น วิธีการข้างต้นให้การควบคุมมากขึ้นและสามารถแก้ไขได้โดยตัวควบคุมมุมมองรายละเอียด (ตัวอย่าง) ของคุณ
Kolin Krewinkel

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.