【问题标题】:Multiple copy of view in scrollview滚动视图中的多个视图副本
【发布时间】:2011-12-22 09:46:00
【问题描述】:

我有 2 个视图,其中包含 nib 文件中的一些标签和文本字段。我想制作视图的多个副本并添加一个滚动视图。当我开始在滚动视图中添加视图时,它会添加到滚动视图的顶部。帮助将不胜感激。 提前致谢。

【问题讨论】:

  • 你能详细解释一下这个场景吗?实际上真的很难理解你真正想要什么以及你目前面临的是什么......

标签: iphone objective-c ios uiview uiscrollview


【解决方案1】:

您需要设置要添加到滚动视图的视图的框架。

subview.frame = CGRectMake(0, 0, 200, 200);
[self addSubView:c];

CGRectMake 定义将子视图添加到视图的位置。

CGRectMake(CGFloat x, CGFloat y, CGFloat width, CGFloat height );

这样做会防止在 scrollView 中添加的视图彼此重叠。

【讨论】:

  • 我的视图是 nib 文件中的一个单独对象。我想将此对象添加到滚动视图中的特定位置。我的问题是我的所有视图都被添加到滚动视图的原点。
  • 是的,这就是我的意思。您必须在代码中引用这些视图?所以您可以使用CGRectMake 来设置框架,或者您可以使用 XCode Interface Builder 本身来设置视图的位置。
【解决方案2】:

如果您希望一个接一个地添加视图,您必须计算视图的高度并修改每个添加到滚动条的新视图的框架。例如,如果您的视图是 100px 高度,那么您必须像这样添加它:

// Number of views added to the scroll
NSUInteger numberOfViews = 0;

// View loaded from XIB
theNewView.frame = CGRectMake(theNewView.frame.origin.x, 
                              theNewView.frame.origin.y + numberOfViews*theNewView.frame.size.height,
                              theNewView.frame.size.width,
                              theNewView.frame.size.height);


// Add the view to the scroll and increment the number of views
[scrollView addSubview:theNewView];
numberOfViews++;

【讨论】:

    【解决方案3】:

    也许你需要这些方法?

    -sendSubviewToBack:
    –bringSubviewToFront:
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多