滚动视图中的多个视图副本

Posted

技术标签:

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

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

【问题讨论】:

你能详细解释一下这个场景吗?实际上真的很难理解你真正想要什么以及你目前面临的是什么...... 【参考方案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:

【讨论】:

以上是关于滚动视图中的多个视图副本的主要内容,如果未能解决你的问题,请参考以下文章

如何在滚动视图中进行多个表格视图

带有 Nativescript 的滚动视图中的多个全屏

将多个容器视图放在 ios 中的分页 UIScrollView 中

多个文本字段的滚动视图不起作用

如何在一个滚动视图中有多个滚动视图

目标 c - 滚动视图内的多个滚动视图