将内容添加到滚动视图的顶部

时间:2012-05-08 00:34:34

标签: ios uiscrollview

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

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

我正在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)。

我愿意改写任何内容,如果你能帮助我,我会全力以赴。

提前非常感谢你!

1 个答案:

答案 0 :(得分:0)

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

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

希望这有帮助。