如何的UIScrollView添加到界面生成器?(How to add UIScrollView t

2019-07-21 00:08发布

我有我所有的接口生成器布局控件(许多标签,按钮等)。 如何把他们都在滚动视图界面生成器,这样我可以有更多的空间,并能够向上和向下滚动透露更多的控制? 我必须以编程方式做到这一点?

Answer 1:

打开具有所有的控制和标签等(在界面生成器)的视图。 全选。 然后编辑菜单下,选择嵌入,然后滚动查看。

注:在老年Xcode的版本中,这是布局菜单下,然后嵌入对象在...(滚动视图)。



Answer 2:

我首选的方案,在这里你不需要硬编码的contentSize的大小:


注意:您可能能够避免使用此招的这个源代码部分: https://stackoverflow.com/a/11239123/153422 -虽然我还没有尝试过呢。

这一招的其余部分...你仍然有需要用到


  1. 将所有控制到一个单一的UIView(在IB:全选,然后去布局>嵌入对象在...>查看)

  2. 联播是单一的UIView使用一个IBOutlet属性的源代码(见下文)

  3. 源代码,而不是接口生成器(IB在这里被打破,它有缺陷,它设置的UIScrollView的起源错误 - 它试图中心看苹果从未费心去检查它的基本错误,叹息):将单一的UIView成一个UIScrollView(见下面的代码)。

  4. 使用sizeThatFits为“自动”设置正确的大小。

代码(StackOverflow上不会让我把代码编号列表里叹气)

头文件:

/** outlet that you hook up to the view created in step 1 */
@property(nonatomic, retain) IBOutlet UIView *masterView;

类文件:

/** inside your viewDidLoad method */
[scrollview addSubview: masterView]; // step 3
scrollView.contentSize = [masterView sizeThatFits:CGSizeZero]; // step 4

......虽然我没有检查这家最近,IIRC它工作在两个2.x和3.x



Answer 3:

这很简单:

首先一个滚动视图添加到您的视图。 更改滚动视图的大小(例如将其700个像素长)。 开始把你的控件时要放在较低(invisble)部分/编辑控件,选择滚动视图和更改Y-开始位置-300。 瞧。 编辑后设定的Y起始位置回0或不管它是什么。



Answer 4:

我不知道这是否只是我,但我试图按照每个这里的其他答案的指示,没有一次成功。 包含的一切所需要的答案都不对,每一个我想假设我们知道做这样的东西留下的那部分。 我最后的帮助下计算出来的红色工匠。 所以......我在这里列出了所有必要的措施来得到这个工作:

  1. InterfaceBuilder下,添加一个视图,然后添加你控制它(或者,如果在主视图中已经存在的控件,您可以选择所有控件,然后去编辑|嵌入|查看,然后拖动新的View所以它是所有的本身主视图之外)。 该视图可以是任何你喜欢的大小。

  2. InterfaceBuilder下,添加一个滚动查看到您的主视图,并调整其大小,以占据整个主视图。

  3. 添加下面列出您的UIViewController头和类文件的代码。

  4. InterfaceBuilder下,挂钩包含您的控件在文件的所有者“内容查看”查看。 挂钩的滚动视图“滚动视图”中的文件的所有者。

头文件:

    @interface MyViewController : UIViewController
     @property(nonatomic, retain) IBOutlet UIScrollView *scrollView;  
     @property(nonatomic, retain) IBOutlet UIView *contentView;  

类文件:

    @synthesize scrollView, contentView;

    - (void)viewDidLoad
    {
        [super viewDidLoad];    
        [self.scrollView addSubview:self.contentView];
        self.scrollView.contentSize = self.contentView.bounds.size;
    }

    - (void)viewDidUnload
    {  
        self.scrollView  = nil;
        self.contentView = nil;
        [super viewDidUnload];
    }


Answer 5:

选择所有要投入滚动视图并转到布局菜单,选择“嵌入对象在”,然后选择“滚动型”的对象。



Answer 6:

虽然这个问题很老了,我会建议一个解决办法,我发现我有同样的问题,并没有能够找到太多的帮助在那里:

当IB,如果你要放置420像素之外的对象,只要确保自己在选择未指定的所有状态栏,上栏,其中包含与所有对象滚动视图查看底酒吧的。 这样,你就可以手动调整画面(用于查看)。 然后,您可以按照调整为滚动视图H值,可以使用所有其他的对象,与他们一起工作Ximonn的意见,然后对H值为撤消更改,然后设置所需的钢筋。



Answer 7:

重要的小东西。 要滚动大子视图(UIImageView的举例)在UIScrollView的记得,这个子视图,取消“用户交互启用”复选框中的InterfaceBuilder - >查看窗口。 或编程做到这一点。

subview.userInteractionEnabled = NO;

否则,此子视图会在屏幕上叠加无任何影响。



Answer 8:

我一直在寻找这几天,我终于碰到这个网站来了,对我工作的解决方案。

与滚动的UIScrollView

基本上,你有你在这一个UIScrollView客体主视图。 然后在它所有的内容另一内容视图。 然后添加内容画面滚动视图。 然后最后设置了滚动的内容大小的尺寸,以内容视图的大小。



Answer 9:

我知道,这个线程是一个年纪大一点......但有人能找到它的谷歌,它的HIGHT排名。 我写了这个小辅助方法来完成这项工作:

- (void)addSubview:(UIView *)theSubView toScrollView:(UIScrollView *)theScrollView
{
    [theScrollView addSubview:theSubView];
    theScrollView.contentSize = theSubView.bounds.size;
}

你只需要在标题中声明两个IBOutlet中的(如contentViewscrollView ),并调用这样的方法,等。无论您想在加载UIViewUIScrollView与源代码:

[self addSubview:contentView toScrollView:scrollView];

我把它叫做在viewDidLoad中

这种方法具有的iOS



Answer 10:

所选择的答案很适合的Xcode 3。

然而,对于Xcode的4,菜单已略有重新排列。

做同样在Xcode 4中选择你的意见,然后使用:

编辑>嵌入>滚动查看



文章来源: How to add UIScrollView to Interface builder?