获取可见单元格的字符串

时间:2015-08-12 09:36:31

标签: objective-c uitableview uiscrollview uilabel

滚动时,我看到了单元格的行号。

每当我滚动时,我想得到每一行的字符串。

这就是我获取行号的方法 -

- (void)scrollViewDidScroll:(UIScrollView *)scrollView{


CGRect visibleRect = (CGRect){.origin = self.tableView.contentOffset, .size = self.view.bounds.size};
CGPoint visiblePoint = CGPointMake(CGRectGetMidX(visibleRect), CGRectGetMidY(visibleRect));
NSIndexPath *visibleIndexPath = [self.tableView indexPathForRowAtPoint:visiblePoint];

CGPoint minumunPoint = CGPointMake(CGRectGetMinX(visibleRect), CGRectGetMinY(visibleRect));

NSLog(@"minimum point : %i", (int)minumunPoint.y);
NSLog(@"visible Index Path.Row : %i, visible Point Y : %f", (int)visibleIndexPath.row, visiblePoint.y);

self.visibleIndex = (int)visibleIndexPath.row;

}

这就是我在每个单元格中设置字符串的方式 -

self.cell.objectID = [object objectId];

3 个答案:

答案 0 :(得分:0)

因为你已经有了indexPath

,所以并不困难
    UITableViewCell *selectedCell = [self.tableView  cellForRowAtIndexPath:visibleIndexPath];
NSString *labelText = selectedCell.textLabel.text;

答案 1 :(得分:0)

您可以传递可见单元格的索引并获取该特定单元格的标签文本。这是一些代码

MessageTableViewCell *cell = (MessageTableViewCell*)[self.tableView cellForRowAtIndexPath:self.visibleIndex];
    NSLog(@"label text %@",cell.textLabel.text);

如果您有自定义单元格,请在MessageTableViewCell

上更改自定义单元格的名称

答案 2 :(得分:0)

如果您需要所有可见的单元格,请使用:

-(void)scrollViewDidScroll:(UIScrollView *)scrollView{
    NSArray *paths = [tableView indexPathsForVisibleRows];

    //get all visible rows
    for (NSIndexPath *path in paths) {
        NSLog(@"%ld", (long)path.row);

        //get this cell
        CustomCell *cell = (CustomCell *)[self.tableView cellForRowAtIndexPath:path];
        //change value with scrolling
        cell.myLabel.text = @"aa";
    }
}