我已经构建了一个UIViewController
子类,其中包含一堆控件,并且意识到如果我旋转iPhone,则一半的控件变得不可见。所以,我想以某种方式使UIViewController's
UIView
可滚动,以便当设备(或模拟器)旋转时,用户可以滚动视图以查看所有控件。
我希望在 Interface Builder 中完成所有这些操作。我尝试在类标识编辑器中将视图的类从UIView
更改为UIScrollView
,但没有滚动。我的视图控制器的基类是一个简单的UIViewController
<UIScrollViewDelegate>
。
是否有一种简单的方法可以使我的视图控制器中的主视图可以滚动而无需在IB中重新创建整个视图?
答案 0 :(得分:6)
对于使用故事板的人来说,这很容易做到
View
UIScrollView
那就是它。
答案 1 :(得分:2)
添加UIScrollView
并制作所有控件和小部件,并通过将它们拖动到滚动视图“进入”或“内部”的任何位置来标记滚动视图的子视图。这使它们成为滚动视图的子视图,这就是你想要的。
答案 2 :(得分:2)
您可以按照以下方式执行此操作:
@property(非原子,保留)IBOutlet UIScrollView * scrollView;
@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);
}
这里真正的技巧是设置scrollView.contentSize。设置完成后,应该进行滚动。
如果要在设备处于纵向方向时启用滚动,可以使用:
// Enable scrolling for landscape orientation
scrollView.contentSize = CGSizeMake(scrollView.frame.size.width, scrollView.frame.size.height);
这应该给你一些参考框架。
跳蚤
答案 3 :(得分:1)
我能够通过向IB中的视图添加滚动视图来实现此目的,使视图控制器成为UIScrollViewDelegate,将scrollview连接到IB中的UIScrollView对象,将委托挂钩到文件所有者,并添加此行在viewDidLoad中:
- (void) viewDidLoad {
scrollView.contentSize = CGSizeMake(1280, 960);
}
答案 4 :(得分:1)
仅当contentSize
的{{1}}大于其边界时才会调用滚动行为。
答案 5 :(得分:0)
了解界面显示的内容会很有帮助,但我建议使用以下方法之一:
答案 6 :(得分:0)
将滚动条添加到Xib文件中,然后拖动&amp;将控件放入滚动条。在load view
内使用
scrollView.contentSize = CGSizeMake(CONTENT_WIDTH, CONTENT_HEIGHT);