7

我已经建立了一个UIViewController子类,其中有一堆控件,并且只是意识到如果我旋转iPhone,一半的控件变得不可见。所以,我想以某种方式使滚动,以便设备(或模拟器)旋转时,用户可以滚动视图来查看所有控件。如何修改现有的UIViewController以允许滚动?

我希望能在Interface Builder中做到这一切。我尝试在Class Identity编辑器中将视图的类别从UIView更改为UIScrollView,但没有任何滚动。我的视图控制器的基类是一个简单的UIViewController<UIScrollViewDelegate>

有没有一种简单的方法来让我的视图控制器中的主视图可以滚动而不必在IB中重新创建整个事物?

+0

我有同样的问题,似乎没有人知道 – Maysam 2011-03-08 11:40:45

回答

2

添加UIScrollView,并将滚动视图的所有控件和小部件和标签子视图拖动到滚动视图中的任意位置“进入”或“内部”。这使得他们的滚动视图的子视图,这是你想要的。

+0

也试过这个。添加了UIScrollView,将控件移入该控件,移除UIView,将控制器设置为UIScrollViwDelegate,并将控制器作为委托并滚动查看其视图。没有滚动。 – Paul 2010-07-08 00:08:11

+0

你不能只是把视图放在滚动视图里面吗?为什么要删除原来的UIView? – 2011-11-30 02:41:15

+0

为什么downvote? – 2013-11-28 00:05:58

0

这将有助于了解你的界面显示,但我会建议下列之一:

  1. 不允许转由shouldAutorotateToInterfaceOrientation
  2. 使用Interface Builder没有返回到adjust your springs and struts这样所有的界面元素都可以在横向视图中使用
  3. 在界面生成器中添加一个新的UIScrollView并拖动你的UIView,然后将文件所有者的视图属性重新分配给滚动视图。
+0

1.我想轮换。 2.没有空间。相信我。 3.试过了。没有滚动。这是一个代表问题吗? – Paul 2010-07-08 00:10:49

+0

你试过更新你的UIScrollView的contentSize吗? – 2010-07-08 00:54:31

1

我能够通过添加滚动视图在IB视图,使视图控制器UIScrollViewDelegate,钩住了滚动到IB一个UIScrollView对象,挂钩委托可达文件的所有者要做到这一点,和加入该线路viewDidLoad中:如果一个UIScrollViewcontentSize比其边界较大

- (void) viewDidLoad { 
     scrollView.contentSize = CGSizeMake(1280, 960); 
    } 
1

滚动行为仅调用。

2

你可以做到这一点,如下所示:

  1. 打开你的笔尖文件,并创建您的UIView对象下一个UIScrollView对象。
  2. 把你所有的控件拖到UIScrollView的
  3. 打开你的头文件(.h)中,并添加一个新的属性滚动视图:

@属性(非原子,保留)IBOutlet中的UIScrollView滚动视图*;

  1. 打开您的实施文件(。米),并插入以下:

@synthesize scrollView;

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 

    // Enable scrolling for portrait 
    scrollView.contentSize = CGSizeMake(scrollView.frame.size.width, 600); 

} 
  1. 回到你的笔尖文件及导线上滚动视图的文件的所有者到您的UIScrollView对象。

这里真正的技巧是设置scrollView.contentSize。一旦设置完成,应该进行滚动。

如果你想使滚动用于当设备处于纵向,你可以这样做:

// Enable scrolling for landscape orientation 
    scrollView.contentSize = CGSizeMake(scrollView.frame.size.width, scrollView.frame.size.height); 

这应该给你一些参考帧。

旧货

0

添加到滚动条XIB文件,然后拖&下降到滚动条控制。里面load view使用

scrollView.contentSize = CGSizeMake(CONTENT_WIDTH, CONTENT_HEIGHT); 
+0

为了改善您的文章的质量,请包括该代码如何/为何解决问题。 – 2012-10-04 10:09:04

5

对于谁使用故事板的人,这是很容易做到

  • 在文档大纲选择的UIViewController中
  • 然后在身份Inspecter最上面View,下自定义类,请输入UIScrollView

就是这样。

+0

这是Xcode 7.2 – 2016-02-14 05:15:45

+0

的答案这只是打破了我的布局。 – 2016-03-14 09:27:57