调整UIView的大小 - 扩展顶部

时间:2010-05-09 01:37:44

标签: iphone cocoa-touch

我在UIScrollView中有一个UIView,我想调整大小。

我可以通过以下方式轻松增加身高:

CGRect frame = self.drawinView.frame;
frame.size.height += 100;
self.drawinView.frame = frame;
self.drawinScrollView.contentSize = CGSizeMake(frame.size.width, frame.size.height);

一切都很好。

上面的代码将在视图底部创建一个我可以填写的视图的新区域。

现在,当我调整视图大小时,我只想重新绘制刚刚创建的视图的新部分。我不想重新整理整个视图。

然而!当我需要展开视图的顶部时,我遇到了困难。

做:

CGRect frame = self.drawinView.frame;
frame.origin.y -= 100;
self.drawinView.frame = frame;
self.drawinScrollView.contentSize = CGSizeMake(500, 600);

不起作用。

如何在不重新绘制整个视图的情况下执行此操作?

2 个答案:

答案 0 :(得分:1)

您可以将内容大小设置为您想要的任何大号,但是您永远不能向左或向上滚动,而不是左上角的0,0。如果你有一个y为-100的视图,它将不允许你滚动到0以上的100px。

相反,您需要将其保留在原位,而是将contentOffset垂直设置为+100。

例如,如果要将视图调整为100px,请执行以下操作:

CGRect frame = self.drawinView.frame;
frame.size.height += 100;
self.drawinView.frame = frame;
self.drawinScrollView.contentSize = CGSizeMake(frame.size.width, frame.size.height);
self.drawinScrollView.contentOffset = CGPointMake(0,100);

您需要手动告诉drawinView您要将内容锁定到视图的底部而不是顶部。

答案 1 :(得分:0)

在上面的代码中,您只是更改视图的原点。不是它的大小。