我在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);
不起作用。
如何在不重新绘制整个视图的情况下执行此操作?
答案 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)
在上面的代码中,您只是更改视图的原点。不是它的大小。