滚动tableView到底部以进行最后一行选择

时间:2016-01-22 15:00:12

标签: ios objective-c uitableview scroll nsindexpath

我有一个表格视图,可以选择日期弹出框。 我想要选择最后一个tableview单元格(当前不可见),它应该滚动到Bottom

我写了以下代码

- (void)viewDidLoad {
   [_tableView reloadData];    
[self scrollTableToIndex];
[_tableView selectRowAtIndexPath:[NSIndexPath indexPathForRow:_selectedMeetingIndex inSection:0] animated:YES scrollPosition:UITableViewScrollPositionNone];
    [self tableView:_tableView didSelectRowAtIndexPath:[NSIndexPath indexPathForRow:_selectedMeetingIndex inSection:0]];
}
-(void)scrollTableToIndex{

    if(_selectedMeetingIndex <= _arrMeetingsList.count / 2){
        _isTableBottomScrolled = NO;
        [_tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:_selectedMeetingIndex inSection:0] atScrollPosition:UITableViewScrollPositionTop animated:YES];
    }else{
        NSLog(@"_tableView.contentOffset.y %f",_tableView.contentOffset.y);

        if (!_isTableBottomScrolled) {
            _isTableBottomScrolled = YES;
            CGFloat height = self.agendaList.contentSize.height - self.tableView.bounds.size.height;
            [self.tableView setContentOffset:CGPointMake(0, height) animated:YES];

        }
    }
}

选择了tableview单元格,但它第一次没有滚动到底部,但是如果我从日期弹出框中选择一个不同的日期,它会滚动到底部并选择单元格。

我已经调用了函数&#34; scrollTableToIndex&#34;在viewDidAppear也是如此,但它不起作用。

如果我使用这个

[self.tableView setContentOffset:CGPointMake(0, CGFLOATMAX) animated:YES];

而不是下面的代码行

CGFloat height = self.agendaList.contentSize.height - self.tableView.bounds.size.height;
 [self.tableView setContentOffset:CGPointZero animated:YES];

如果我这样做,那么代码第一次工作,但第二次,在我从popover中选择日期后,tableview挂起。

我已经提到了link

请帮助。

1 个答案:

答案 0 :(得分:1)

我正在使用的代码:

- (void) scrollToBottomAnimated:(BOOL) animated
{
    CGSize contentSize = self.contentSize;
    CGSize boundsSize = self.bounds.size;
    if (contentSize.height > boundsSize.height - self.contentInset.bottom)
    {
        CGPoint bottomOffset = CGPointMake(0, contentSize.height - boundsSize.height + self.contentInset.bottom);
        [self setContentOffset:bottomOffset animated:animated];
    }
}

我将此作为我的UITableView类别方法之一,因此&#34; self&#34;只是UITableView