Ios UIScrollView不能在Ipad中滚动

Ios UIScrollView不能在Ipad中滚动,ios,objective-c,ipad,uiscrollview,Ios,Objective C,Ipad,Uiscrollview,我有一个.xib文件,其中包含一个空视图和scrollview,下面是将scrollview拉入主视图的代码,问题是滚动不起作用: @property (atomic, retain) IBOutlet UIScrollView* scroll; @synthesize scroll; - (void)viewDidLoad { [super viewDidLoad]; [self.view addSubview:self.scroll]; } 我意识到在这个论坛上和谷歌上

我有一个.xib文件,其中包含一个空视图和scrollview,下面是将scrollview拉入主视图的代码,问题是滚动不起作用:

@property (atomic, retain) IBOutlet UIScrollView* scroll;

@synthesize scroll;

- (void)viewDidLoad {
    [super viewDidLoad];
    [self.view addSubview:self.scroll];
}

我意识到在这个论坛上和谷歌上看了很多东西,但是没有一个解决了我的问题,只是为了以防万一,我提供我的项目给donwload,希望有人把这个问题形象化:

如果你把UIScrollView放在.xib中,它应该已经在那里了

[self.view addSubview:self.scroll];
没有必要


scrollview中的视图应该比实际滚动的scrollview大。尝试放置一些带有文本的静态UILabel来测试基本的滚动效果。

正如@departmento B所提到的,在主视图中添加一个新的滚动视图时间并不是真正必要的,所以您应该删除这一行

基本上,
UIScrollView
组件需要两个参数资产来控制其滚动:

  • 它自己的框架
您可以使用
.xib
文件控制此框架,方法是在
大小检查器中对其进行调整,也可以使用此类代码以编程方式执行此操作:

UIScrollView*scrollView=[[UIScrollView alloc]initWithFrame:CGRectMake(0,0,100,100)]

  • 内容框架
您应该调整其内容的框架以确保其可滚动,基本上您应该使用以下方法:

scrollView setContentSize:CGSizeMake(100200)

在这种情况下,您的
scrollView
将垂直滚动,因为其高度的内容大于其高度的框架

代码样本


您必须告诉滚动视图它的大小以及视图中的内容

在您的情况下,您可以这样做:

- (void)viewDidLoad {
    [super viewDidLoad];
    self.scroll.contentSize = self.scroll.bounds.size; // The content size
    self.scroll.frame = self.view.frame; // The view size
    [self.view addSubview:self.scroll];
}
这当然不是最好的方法,但我只是把这段代码放在这里,这样你就可以理解“contentSize”的用法了

如果您对UIScrollView有任何其他问题,请使用此页面。这就是我找到答案的地方:

- (void)viewDidLoad {
    [super viewDidLoad];
    self.scroll.contentSize = self.scroll.bounds.size; // The content size
    self.scroll.frame = self.view.frame; // The view size
    [self.view addSubview:self.scroll];
}