代码之家  ›  专栏  ›  技术社区  ›  Mongus Pong

调整UIView的大小-展开顶部

  •  2
  • Mongus Pong  · 技术社区  · 16 年前

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

    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 回复  |  直到 16 年前
        1
  •  1
  •   Ed Marty    16 年前

    您可以将内容大小设置为所需的任意大的数字,但您永远不能向左或向上滚动超过左上角的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 您希望将内容锁定到视图的底部而不是顶部。

        2
  •  0
  •   Stefan Arentz    16 年前