iPhone - 在聊天室中向下滚动线条

时间:2014-03-06 00:49:21

标签: ios scroll chat

我有一个包含聊天室的应用程序。每当有人在其中输入内容时,我希望它向下滚动到输入的最后一行。基本上,我希望最后输入的东西是屏幕上最低的东西。当我输入十行聊天文字时,它就会直接落在我的视野之下。这是我的代码:

- (void)scrollToBottom
 {
    CGRect lastLine;
    lastLine.origin.x = 0;
    lastLine.origin.y = self.contentSize.height-1;
    lastLine.size.height = 1;
    lastLine.size.width = 1;

    [self scrollRectToVisible:lastLine animated:NO];
}

我在使用此代码发布内容后调用此内容:

- (void)displayChatMessage:(NSString*)message fromUser:(NSString*)userName {
      [chat appendTextAfterLinebreak:[NSString stringWithFormat:@"%@: %@", userName, message]];
      [chat scrollToBottom];
}

我将appendTextAfterLinebreak称为,其代码为:

- (void)appendTextAfterLinebreak:(NSString *)text
{
    self.text = [[self.text stringByAppendingString:@"\n"] stringByAppendingString:text];
}

2 个答案:

答案 0 :(得分:0)

假设您使用的是UITextView,则可以使用scrollRangeToVisible:轻松滚动到最后一行。例如:

- (void)scrollToBottom {

    NSRange bottom = NSMakeRange(chat.text.length - 1, 1);
    [chat scrollRangeToVisible:bottom];

}

答案 1 :(得分:0)

假设您使用的是UIScrollView,则可以使用以下代码。

- (void)scrollToBottomAnimated:(BOOL)animated {
    CGFloat y = myScrollView.contentSize.height - myScrollView.frame.size.height;
    [myScrollView setContentOffset:CGPointMake(0, y) animated:animated];
}