0

我正在尝试重新创建内置消息应用程序的视图。当我单击“加载上一个”时,我需要在底部添加对话气泡并在顶部添加它们。

我的主要问题是,当我将更多内容加载到顶部时,我不知道如何将其余的谈话气泡推下去。这对我来说是一场斗争。

我在 UIScrollView 的一个子类中工作,并在其中添加了一个“innerView”。

我所做的是将标签(气泡)添加到顶部的负值和底部的正值。我将最后的位置存储在“topLabelsPosition”和“bottomLabelsPosition”中

有人能帮忙吗?这是我的代码

CGFloat whereToScroll = 0.0;
CGFloat topOfContent = self.topLabelsPosition.origin.y;
CGFloat bottomOfContent = self.labelsPosition.origin.y;

CGFloat fullHeight = fabs(bottomOfContent)+fabs(topOfContent);

[innerView setFrame:CGRectMake(0,topOfContent,self.frame.size.width, fullHeight)];

if(is_adding_to_top) {
    whereToScroll = topOfContent;
} else {
    whereToScroll = bottomOfContent;
}

[self setContentSize:contentSize];
CGPoint point = {0, whereToScroll};
[self setContentOffset:point];

我的“innerView”在顶部并没有变大,但在底部 - 我可以通过背景颜色来判断。而且我的滚动视图不会像我想要的那样滚动到 -300.00 (topOfContent)。

我愿意重写任何东西,如果你愿意提供帮助,我会全力以赴。

非常感谢您!

4

1 回答 1

0

如果您仔细查看 Messages.app,它在顶部加载新气泡时不会滚动。他们只是眨眼。与滚动它们的底部出现新消息相反。

我相信他们并没有将它们添加到顶部,而是将它们添加到 (0,0) 然后将滚动视图中的所有内容向下移动到内容视图中。所以尽量不要添加到 -xxx y 而是 0+ y 并将已经在里面的所有内容的框架向下调整相同的数量。

希望这可以帮助。

于 2012-05-08T01:02:00.350 回答