如果我想从最后一个看到表视图,该怎么办?

时间:2013-07-08 05:14:10

标签: iphone uitableview

嘿我想做一个chat.so的演示。当我打开它的UITableView时,它应该显示从上一个和上一个项目应该在上面..即,我想将我的UITableView自动滚动到最后一行当用户打开聊天屏幕时。我该怎么办?

我的代码是 -

cell = [tv dequeueReusableCellWithIdentifier:@"Cell"];
if (cell == nil)
{
    cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:nil] autorelease];
}

    [lblName setFont:[UIFont fontWithName:@"Arial" size:12]];
    lblName.lineBreakMode = NSLineBreakByWordWrapping;
    lblName.numberOfLines = 0;
    lblName.text=[arrUsername objectAtIndex:indexPath.row];
    lblName.textColor = [UIColor blackColor];
    [lblName setBackgroundColor:[UIColor grayColor]];
    if ([[arrCommentUid objectAtIndex:indexPath.row] isEqualToString:@"1"]) {
        [lblName setTextAlignment:NSTextAlignmentLeft];
    }
    else

请帮忙!!它是UITableView

的optional.cell的代码

3 个答案:

答案 0 :(得分:3)

尝试使用聊天应用程序

SSMessagesviewcontroller
stbubbletableviewcell
bubblethingie
uibubbletableview
styledchat
acanichat

也可以使用

转到最后一行
   [tableView reloadData];
   int lastRowNumber = [tableView numberOfRowsInSection:0] - 1;
   NSIndexPath* ip = [NSIndexPath indexPathForRow:lastRowNumber inSection:0];
   [tableView scrollToRowAtIndexPath:ip atScrollPosition:UITableViewScrollPositionTop animated:NO];

答案 1 :(得分:0)

为了做到这一点,你应该按降序对数组进行排序。这样它就会显示从上到下的数据。

为此您可以使用NSSortDescriptor

NSSortDescriptor* sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:nil ascending:NO selector:@selector(localizedCompare:)];
NSArray* sortedArray = [<YOURS_ARRAY> sortedArrayUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]];

享受编程!

答案 2 :(得分:-1)

您可以使用scrollToRowAtIndexPath

滚动到最后
[tableView scrollToRowAtIndexPath:lastIndexPath atScrollPosition:UITableViewScrollPositionBottom animated:YES];  

您可以使用

获取最后一行的indexPath

NSIndexPath *lastIndexPath = [NSIndexPath indexPathForRow:([yourTableAry count] - 1) inSection:0];

NSIndexPath *lastIndexPath = [NSIndexPath indexPathForRow:([tableView numberOfRowsInSection:0] - 1) inSection:0];

编辑

如果你想转到行的顶部,那么

NSIndexPath *firstRowIndexPath = [NSIndexPath indexPathForRow:0 inSection:0];

[tableView scrollToRowAtIndexPath:firstRowIndexPath atScrollPosition:UITableViewScrollPositionBottom animated:YES];